extern "C"
主要用在c++调用c编写的函数或者相关代码时使用,因为c和c++的函数、变量结构类似,但是编译方式完全不同,这种写法指定c部分的代码按照c的编译方式去处理。
#ifndef CPP_HEADER
#define CPP_HEADER
extern "C" void print(int i);
#endif CPP_HEADER
#ifndef SOME_HEADER_INCLUDED
#define SOME_HEADER_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*
* 这里的代码将按照c的编译方式处理。但是在语法上,还是遵循当前语言环境。
*/
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* SOME_HEADER_INCLUDED */
extern
file1.c:
int a = 1;
file2.c:
extern int a;
引申: static修饰的变量,只能在当前文件有效。
"C"
规定的写法,表示的是遵循c语言编译连接规约的语言(不一定是c语言)。