extern 'C' 这个关键字在C语言中有什么特殊含义或用途?
- 内容介绍
- 文章标签
- 相关推荐
本文共计650个文字,预计阅读时间需要3分钟。
在C++中,经常在头文件中看到`extern C`修饰的函数,这是为了在C++程序中调用C语言模块中定义的函数。具体作用如下:
`extern C`用于指定接下来的函数使用C语言的链接约定,这样C++程序就能调用C语言编写的函数。这是因为C++和C的名称解析规则不同,如果不使用`extern C`,C++编译器可能会改变函数名称,导致链接时找不到对应的函数。
例如:cppextern C { void CFunction();}
这段代码声明了一个C语言风格的函数`CFunction`,C++程序可以像调用C语言函数一样调用它,而无需担心名称冲突或兼容性问题。
extern "C"
LuChenQun edited this pageMar 30, 2019· 3 revisions在C++中常在头文件见到extern "C"修饰函数,那有什么作用呢? 是用于C++链接在C语言模块中定义的函数。
C++虽然兼容C,但C++文件中函数编译后生成的符号与C语言生成的不同。因为C++支持函数重载,C++函数编译后生成的符时带有函数参数类型的信息,而C则没有。
本文共计650个文字,预计阅读时间需要3分钟。
在C++中,经常在头文件中看到`extern C`修饰的函数,这是为了在C++程序中调用C语言模块中定义的函数。具体作用如下:
`extern C`用于指定接下来的函数使用C语言的链接约定,这样C++程序就能调用C语言编写的函数。这是因为C++和C的名称解析规则不同,如果不使用`extern C`,C++编译器可能会改变函数名称,导致链接时找不到对应的函数。
例如:cppextern C { void CFunction();}
这段代码声明了一个C语言风格的函数`CFunction`,C++程序可以像调用C语言函数一样调用它,而无需担心名称冲突或兼容性问题。
extern "C"
LuChenQun edited this pageMar 30, 2019· 3 revisions在C++中常在头文件见到extern "C"修饰函数,那有什么作用呢? 是用于C++链接在C语言模块中定义的函数。
C++虽然兼容C,但C++文件中函数编译后生成的符号与C语言生成的不同。因为C++支持函数重载,C++函数编译后生成的符时带有函数参数类型的信息,而C则没有。

