C 外部变量的使用
书中看到这样一段目前仅仅根据自己的理解mark一下,说不定理解的不正确。
外部变量似乎和全局变量是差不多一个意思的(函数中的局部变量在C中称作自动变量)。
外部变量必须定义在所有函数之外,且只能定义一次,这点很好理解,变量自然是唯一的,在每个需要访问外部变量的函数中,必须声明相应的外部变量,此时说明其类型。
显示声明用extern
,某些情况下可以省略,那就是外部变量的定义出现在他所使用的函数前(先定义在使用,我觉得在正常不过)。
举个例子:
#include <stdio.h>
#define MAXLINE 1000
int max;
char line[MAXLINE];
char longest[MAXLINE];
int getline(void);
void copy(void);
main()
{
int len;
// extern int max;
// extern char longest[];
max = 0;
while((len = getline()) > 0)
if (len > max) {
max = len;
copy();
}
if (max > 0)
printf("%s", longest);
return 0;
}
int getline(void)
{
int c, i;
extern char line[];
for (i = 0; i < MAXLINE - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
line[i] = c;
if (c == '\n') {
line[i] = c;
++i;
}
line[i] = '\0';
return i;
}
void copy(void)
{
int i;
extern char line[], longest[];
i = 0;
while ((longest[i] = line[i]) != '\0')
++i;
}
注销掉的两句,加或者不加不影响程序运行的结果。
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。