I just got some C code that uses extern \"C\" to declare external functions like this:
extern \"C\" void func();
Is this valid C? I\'m getting
No, it's not valid C. It should only be used in C++ code to refer to functions defined in C code. The extern "C"
should be surrounded in a ifdef __cplusplus
/#endif
block:
// For one function
#ifdef __cplusplus
extern "C"
#endif
void func();
// For more than one function
#ifdef __cplusplus
extern "C"
{
#endif
void func1();
void func2();
#ifdef __cplusplus
}
#endif