0

我知道当您c在项目中包含标题时,c++您必须将其包装起来,extern "C"因为c++并且c有两种不同的识别功能的方式。c将使用名称来标识函数,并且c++必须使用名称和参数来满足函数重载。

我不明白的是为什么有些c标题不需要像包装extern "C"一样windows.h

4

1 回答 1

8

通常,将 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 */
于 2013-02-08T17:57:15.567 回答