摘要: extern "C"的双重含义1.被它修饰的目标是“extern ”;2.被它修饰的目标是“C ”。让我们来详细解读这两重含义。被extern "C"限定的函数或变量是extern类型的。extern 是C/C++ 语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住下列语句:extern int a;仅仅是一个变量的声明,其并不是在定义变量a ,并未为a 分配内存空间。变量a 在所有模块中作为一种全局变量只能被定义一次,否则会出现连接错误。引用一个定义在其它模块的全局变量或函数(如 阅读全文
posted @ 2012-09-02 17:47 liangxiaxu 阅读(12421) 评论(0) 推荐(0) 编辑
摘要: 与宏的比较内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如:#define TABLE_COMP(x) ((x)>0?(x):0)就定义了一个宏。为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。而宏只是在预处理的地方把代码展开,不需要额外的空间和时间方面的开销,所以调用一个宏比调用一个函数更有 阅读全文
posted @ 2012-09-02 11:30 liangxiaxu 阅读(370) 评论(0) 推荐(1) 编辑