I see some code in C++ using extern "C" at the beginning of the file like this:

#ifdef __cplusplus 
extern "C" {} 
#endif

What does this mean? How does it work?

有帮助吗?

解决方案

It's probably not like that, but more like:

#ifdef __cplusplus 
extern "C" {
#endif

//some includes or declarations

#ifdef __cplusplus 
}
#endif

It tells the compiler to use C name mangling for whatever is declared inside the directives.

The way you have it now:

#ifdef __cplusplus 
extern "C" {} 
#endif

is just dead code.

其他提示

It is used to inform the compiler to disable C++ name mangling for the functions defined within the braces. http://en.wikipedia.org/wiki/Name_mangling

Extern "C" - notify the compiler,that the noted function is compiled in C style.

It specifies a linkage specification.
It tells the linker how to link the code.

It is useful when you want to mix C and C++ code.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top