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 | ✗ | ✓ |
以上。