各位大哥谁知道extern “C”究竟是什么意思,学了一年半的C/C++ 这个总是理解不了? C连接与C++连接有什么区别? 给我一个通俗易懂的回答吧,在线给分!! 也就是说为啥子要加extern "c"
2010-09-05 21:42
网友采纳
就我的个人理解: extern c是指用c的编译方式编译程序,你应该是在c++代码里面看到的这句话吧,在c++里面,编译时,你定义的各个函数名都会被改成其他的名字,这样就不方便其他的语言来调用该源程序,而在c++定义函数前加一个extern c就表示用c的方式来编译代码,并且函数名不会被改变。你可义测试比较: g++ filename.cpp -s(该源程序中函数前没加extern c,加参数-s是指生成汇编代码,方便你比较观看) g++ filename.cpp -s(该源程序中函数前加extern c) 通过比较你会发现,前一个fileneme.s文件中找不到你先前定义的函数了,是因为c++编译器把你的函数改名了;而后一个filename.s文件中你就能找到这个函数名。 其实在c++中定义的函数前加extern c平时并不常见,用的也不多,你可以不必专研,了解有该用法即可。
本文解释了C++中使用extern C 的原因及作用,尤其是在C++与C混合编程时如何避免名称修饰导致的问题。通过示例对比了带有与未带有extern C 的编译差异。

被折叠的 条评论
为什么被折叠?



