一、extern声明变量和函数说明这个变量和函数已经在其他文件中定义了;
二、在C++中,extern “C” 表示该函数以C语言的方式编译;
三、全局变量和局部变量同名时,局部变量加上extern则使用这个局部变量。
问题1:C中全局变量局部变量能同名吗?怎么访问全局变量?
可以同名。
如何访问:1.通过指针
2.通过函数
3.用extern
int a; //通过函数 int fun(){ return a; } int main(){ int *pa = &a;//通过指针 int a; printf("%d ",a);//局部变量 printf("%d ",fun()); printf("%d ",*pa); int b = *pa; //语句块 块变量 { extern int a;//在当前语名块中的变量前加extern 相当于是全局的变量 printf("%d ",a); } return 0; }
问题2:C++中怎么访问全局变量/函数?
定义在全局的变量或函数相当于无名名字空间
直接在前面加::
问题3:一个文件访问另一个文件的变量:
被访问的文件将该变量定义为全局变量 int a,在访问的文件中加extern访问 extern int a;