读书人

探索extern quot;Cquot

发布时间: 2013-02-24 17:58:56 作者: rapoo

探索extern "C"

有一种说法是C++是另一种C语言,虽然在C++创建之初的初衷也是期望一个更好的C,但是C++中全局变量和函数所采用的编译和连接方式却与C语言不完全相同。这就会引起C++和C语言在处理全局变量和函数时所采用的不同方式,并且当这两种方式需要C++与C兼容时,就会引入一些平衡两种处理方式的另一种处理方法。

下面的代码段,在C程序里,应该经常可见

client:00000000006008b8 b dtor_idx.6147client:0000000000400470 t frame_dummyclient:00000000004004cd T functionclient:0000000000400498 T main
发现了吧,C++ 和C编译器对同一个函数编译之后的符号是不一样的,C就是以函数名作为符号,而C++比较复杂,这也是为什么C++可以支持重载,而C不能支持的原因了。

现在我以C的方式编译,但是加上extern "C" 关键字,其编译之后的结果和C编译方式的结果是一样的。这里就不给出结果了。

读书人网 >编程

热点推荐