最近在学Lua,关于Lua编译的地方,由于Lua是用C语言写的,在C++中使用C语言的函数,需要使用extern "C“编译才能过,之前貌似没有接触过这方面的知识,写个blog纪念一下,顺便整理一下extern关键字的作用。
一.extern "C"的作用
这是我第一次见,因为之前一直没有过C++去调用
C的函数。关于C++和C语言混合编程其实还有一些地方要注意的。比如,如果编译时出现下面的错误:
error:预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
这是因为C语言和C++的预编译头不同,如果C语言文件较少,可以将C语言文件的属性->预编译头改为不使用预编译头,就可以解决问题啦。
而如果这时候直接在cpp文件中使用C语言的函数,则会出现下面的错误:
>C++Test.obj : error LNK2019: 无法解析的外部符号 "int __cdecl CTest(int,int)" (?CTest@@YAHHH@Z),该符号在函数 _wmain 中被引用。
错误发生在lin

本文介绍了在C++中如何使用extern "C"解决与C语言库的编译链接问题,详细阐述了extern "C"的关键字作用,以及在C++中使用C语言函数时避免名字修饰的必要性。同时,文章还提及了extern关键字的作用,并简单提及了全局变量的相关内容。
最低0.47元/天 解锁文章
1万+

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



