posted @ 2016-12-13 12:32 黑色の铅笔 阅读(193) 评论(0) 推荐(0)
摘要:
(1)非空区别。在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这是你就可以把 阅读全文
摘要:
内联函数和普通函数相比可以加快程序运行的速度,因为不需要中断调用,在编译的时候内联函数可以直接被镶嵌到目标代码中。宏只是一个简单的替换。 内联函数要做参数类型检查,这是内联函数跟宏相比的优势。 inline是指嵌入代码,就是在调用函数的地方不是跳转,而是把代码直接写到那里去。对于短小的代码来说,in 阅读全文
posted @ 2016-12-13 12:25 黑色の铅笔 阅读(210) 评论(0) 推荐(1)
摘要:
1> 内联函数 内联函数是在编译时期展开,而虚函数的特性是运行时才动态联编,所以两者矛盾,不能定义内联函数为虚函数。 虚表机制需要一个真正的函数地址,而内联函数展开以后,就不是一个函数,而是一段简单的代码(多数C++对象模型使用虚表实现多态,对此标准提供支持) 2> 构造函数 构造函数用来创建一个新 阅读全文
posted @ 2016-12-13 10:48 黑色の铅笔 阅读(356) 评论(0) 推荐(0)
摘要:
C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构 阅读全文
posted @ 2016-12-13 10:38 黑色の铅笔 阅读(1200) 评论(0) 推荐(0)
摘要:
基础:c++中,什么时候用 A a;和什么时候用A a=new A; 说明: 1、全局对象和局部对象的生命期都是严格定义的,程序员不能以任何方式改变他们的生命期。但是有时候需要创建一些生命期能被程序员控制的对象,他的分配和释放可以根据程序运行中的操作来决定。这时就需要使用new操作符了。 2、 动态 阅读全文
posted @ 2016-12-13 10:21 黑色の铅笔 阅读(182) 评论(0) 推荐(0)
摘要:
1、进程标识 每个进程都有一个非负整型表示的唯一的进程ID。进程ID标识符总是唯一的。 虽然进程ID是唯一的,但某个ID被回收后,ID号是可以复用的。 ID为0的进程通常是调度进程(其常常被称交换进程)是系统进程。进程 1通常是init进程,在自举过程结束时由内核调用。init进程绝不会终止,是一个 阅读全文
posted @ 2016-12-12 17:32 黑色の铅笔 阅读(206) 评论(0) 推荐(0)
摘要:
为了降低设备多样性带来的Linux驱动开发的复杂度,以及设备热拔插处理、电源管理等,Linux内核提出了设备模型(也称作Driver Model)的概念。设备模型将硬件设备归纳、分类,然后抽象出一套标准的数据结构和接口。驱动的开发,就简化为对内核所规定的数据结构的填充和实现。 我们知道linux内核 阅读全文
posted @ 2016-12-11 17:26 黑色の铅笔 阅读(263) 评论(0) 推荐(0)
摘要:
驱动有两种存在形式: 1、驱动原文件和编译驱动文件的Makefile,一般是由厂家提供,例如一个网卡,厂家会给提供一个驱动源文件(.c) 编译时需要改动Makefile中的KERN_DIR(开发板的linux内核的源码树目录)编译会生成一个.ko文件 然后insmod装载 该类型优势:方便调试开发 阅读全文
posted @ 2016-12-11 16:21 黑色の铅笔 阅读(782) 评论(0) 推荐(0)
摘要:
fopen /open区别 UNIX环境下的C 对二进制流文件的读写有两套班子:1) fopen,fread,fwrite ; 2) open, read, write这里简单的介绍一下他们的区别。1. fopen 系列是标准的C库函数;open系列是 POSIX 定义的,是UNIX系统里的syst 阅读全文
posted @ 2016-12-09 08:44 黑色の铅笔 阅读(2275) 评论(0) 推荐(0)
浙公网安备 33010602011771号