什么时候应该在包含C库时包含在`extern“C”中

时间:2013-02-08 17:48:25

标签: c++

我们了解到,当您在c项目中添加c++标题时,必须使用extern "C"对其进行换行,因为c++c有两种不同的方式识别功能。 c将使用该名称来标识函数,c++必须使用名称和参数来满足函数重载。

我不明白为什么有c个标题不需要包含在extern "C" windows.h中?

1 个答案:

答案 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 */