我们了解到,当您在c
项目中添加c++
标题时,必须使用extern "C"
对其进行换行,因为c++
和c
有两种不同的方式识别功能。 c
将使用该名称来标识函数,c++
必须使用名称和参数来满足函数重载。
我不明白为什么有c
个标题不需要包含在extern "C"
windows.h
中?
答案 0 :(得分:7)
通常,在extern "C"
中包装C标头不是一个好主意。标题可能包含执行此操作时中断的其他文件。要在C ++中使用的设计的C标头将适当地处理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 */