GitHub - Light-City/CPlusPlusThings: C++那些事
1.
① extern
extern关键字,C语言extern关键字用法详解
如果全局变量不在文件的开头定义,其有效的作用范围只限于其定义处到文件结束。如果在定义点之前的函数想引用该全局变量,则应该在引用之前用关键字 extern 对该变量作“外部变量声明”,表示该变量是一个已经定义的外部变量。有了此声明,就可以从“声明”处起,合法地使用该外部变量。
如下会报错:
#include <iostream>
int max(int x,int y);
int main(void)
{
int result;
result = max(g_X,g_Y);
printf("the max value is %d\n",result);
return 0;
}
// 定义两个全局变量
int g_X = 10;
int g_Y = 20;
int max(int x, int y)
{
return (x>y ? x : y);
}
修改如下:
#include <iostream>
int max(int x,int y);
// 定义两个全局变量
int g_X = 10;
int g_Y = 20;
int main(void)
{
int result;
result = max(g_X,g_Y);
printf("the max value is %d\n",result);
return 0;
}
int max(int x, int y)
{
return (x>y ? x : y);
}
或使用extern:
#include <iostream>
int max(int x,int y);
int main(void)
{
int result;
extern int g_X; // 外部变量声明
extern int g_Y;
result = max(g_X,g_Y);
printf("the max value is %d\n",result);
return 0;
}
// 定义两个全局变量
int g_X = 10;
int g_Y = 20;
int max(int x, int y)
{
return (x>y ? x : y);
}
②