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);
}
②