3.函數作用范圍
Turbo C2.0中每個函數都是獨立的代碼塊,函數代碼歸該函數所有,除了對函數的調用以外,其它任何函數中的任何語句都不能訪問它。例如使用跳轉語句goto就不能從一個函數跳進其它函數內部。除非使用全程變量,否則一個函數內部定義的程序代碼和數據,不會與另一個函數內的程序代碼和數據相互影響。
Turbo C2.0中所有函數的作用域都處於同一嵌套程度,即不能在一個函數內再說明或定義另一個函數。
Turbo C2.0中一個函數對其它子函數的調用是全程的,即是函數在不同的文件中,也不必附加任何說明語句而被另一函數調用,也就是說一個函數對於整個程序都是可見的。
4.函數的變量作用域
在Turbo C2.0中,變量是可以在各個層次的子程序中加以說明,也就是說,在任何函數中,變量說明有只允許在一個函數體的開頭處說明,而且允許變量的說明(包括初始化)跟在一個復合語句的左花括號的後面,直到配對的右花括號為止。它的作用域僅在這對花括號內,當程序執行到出花括號時,它將不復存在。當然,內層中的變量即使與外層中的變量名字相同,它們之間也是沒有關系的。
例9.
#include<stdio.h>
int i=10;
int main()
{
int i=1;
printf("%d\t, i);
{
int i=2;
pritnf("%d\t", i);
{
extern i;
i+=1;
printf("%d\t", i);
}
printf("%d\t", ++i);
}
printf("%d\n", ++i);
return 0;
}
運行結果為
1 2 11 3 2
從程序運行的結果不難看出程序中各變量之間的關系,以及各個變量的作用域。