External Variables and Functions in C
这篇文章讲一下C语言中external variable和function。
external是相对于internal而言的。internal variable就是定义在函数中的
变量,external variable则是定义在函数外的变量。
相较于internal variable,external variable有着更长的生命周期。
因为internal variable是定义在函数内部的变量,所以它会在程序进入函数时
创建,离开函数时消失。然而,external variable则是永久的(permanent),所以它可以
在不同函数之间保持自己的数值。这就意味着它可以被多个函数引用。
所以像函数的arguments和return value一样,external variable可以
用于不同函数之间的信息交流。
如:
int a; /* define an external variable */
void func1()
{
a = 9;
}
int main(void)
{
int b; /* define an internal variable */
printf("a = %d\n", a); /* print "a = 9" */
return 0;
}
对于函数而言,C语言规定所有的函数必须是external的,因为C语言不允许在
一个函数内定义其他函数。
C语言中variable和function与internal和external的关系如下表所示:
| internal | external | |
|---|---|---|
| variable | ✓ | ✓ |
| function | ✗ | ✓ |
以上。