外部變數與作用域

2022-07-17 20:30:14 字數 761 閱讀 1346

#include

#define maxline 1000

int max;

char line[maxline];

char longest[maxline];

int getline(void);

void copy(void);

/*列印最長的行,*特別版本*/

main()

if(max > 0)  /*存在這樣的行*/

printf("%s",longest);

return 0; 

}/*getline函式:特別版本*/

int getline(void)

在該例子中,前幾行定義了main、getline與copy函式使用的幾個外部變數,宣告了各外部變數的型別,這樣編譯程式將為他們分配儲存單元。從語法角度上來看,外部變數的定義與區域性變數的定義是相同的,但由於他們各位於各函式的外部,因此這些變數是外部變數。函式在使用外部變數之前,必須知道外部變數的名字。要達到該目的,一種方式是在函式中使用extern型別的宣告。這種型別的宣告除了在前面加乙個關鍵字extern外,其他方面與普通變數的宣告相同。

如果程式包含在多個原始檔中,而某個變數在file1檔案中定義、在file2和file3中使用,那麼在檔案file2和檔案file3中就需要使用extern宣告來建立該變數與其定義之間的聯絡。人們通常把變數和函式的extern宣告放在乙個單獨的檔案中(習慣上稱之為標頭檔案),並在每個原始檔的開頭使用#include語句把所有要用的標頭檔案包含進來。字尾名.h約定為頭檔名的副檔名。

外部內部變數 作用域

外部變數和內部變數 乙個c程式就是由乙個或多個 外部 物件構成的,它們可能是外部變數或函式。在函式外部定義的變數就叫做外部變數,在函式內部定義 也可以認為在塊內定義 的變數叫做內部變數。函式本身一定是外部的 c語言不允許將函式定義在函式內部,也就是說不可在函式內部再定義函式。函式內部或塊內定義的內部...

作用域與變數提公升

js中變數的作用域有全域性作用域和區域性作用域兩種,作用域簡單來講就是變數與函式的可訪問範圍。宣告提前是在js預編譯是就進行了,變數提公升知識提公升變數的宣告,並不會吧值也提上來。例1 var name one function test var name one function test 解析 ...

作用域與變數提公升

js中變數的作用域有全域性作用域和區域性作用域兩種,作用域簡單來講就是變數與函式的可訪問範圍。區域性作用域變數優先於全域性變數,函式只是乙個作用域的基本單位。例1 var name one function test test console.log name 輸出為 two解析 函式內部省略var...