我的理解是,当你包括c在你的头c++的项目,你必须把它包起来extern "C",因为c++和c具有识别功能的两种不同的方式.c将使用该名称来标识一个函数,并且c++必须使用名称和参数来满足函数重载.
我不明白的是,为什么有c不需要被包裹在头部extern "C"像windows.h?
通常,包装C头extern "C"不是一个好主意.标题可能包含执行此操作时中断的其他文件.设计用于C++的AC头将extern "C"适当地处理,而无需您做任何事情.典型代码:
#ifndef MY_HEADER_INCLUDE_GUARD
#define MY_HEADER_INCLUDE_GUARD
#ifdef __cplusplus
extern "C" {
#endif
/* C callable stuff goes here */
#ifdef __cplusplus
}
#endif
#endif /* MY_HEADER_INCLUDE_GUARD */
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
631 次 |
| 最近记录: |