轉
包括:區域性作用域、全域性作用域、檔案作用域、函式作用域、函式原型作用域、名空間作用域、類作用域
注意:潛在作用域,也就是同名變數的作用域問題。
1. 區域性作用域
指在函式定義或者復合語句中,從識別符號的定義點開始到函式或者復合語句結束之間的程式段。
在同乙個區域性作用域內不能出現相同名字的兩個區域性變數(包括形參)。
乙個函式內的復合語句又是乙個區域性作用域,也就是在函式內有某個變數時,復合語句中可以有另外乙個同名字的變數。
2. 全域性作用域
指對構成c++程式的所有原始檔。
在c++標準中,把全域性作用域歸於連線控制範疇。
通常把全域性識別符號的生命放在某個標頭檔案中。
3. 檔案作用域
指單獨的乙個原始檔。
在全域性識別符號的定義中加上static修飾符,該全域性識別符號就變成了具有檔案作用域的識別符號。
4. 函式作用域
指由整個函式定義所構成的程式段。
語句標號(如goto語句中使用的語句標識)是唯一的具有函式作用域的識別符號。
5. 函式原型作用域
指用於函式宣告的函式原型,其中的形參的作用域從函式原型開始到函式原型結束。
如:void f(int x, double y); //其中的x和y的作用域從「(」開始到")"結束。
6. 名空間作用域
無名的名空間定義不能在其他地方呼叫
7. 類空間作用域
轉 塊作用域
塊是函式中一對花括號(包括函式定義所使用的花括號)所括起的一段區域。在塊內說明的識別符號具有塊作用域,它開始於識別符號被說明的地方,並在標誌該塊結束的右花括號處結束。如果乙個塊內有乙個巢狀塊,並且該塊內的乙個識別符號在巢狀塊開始之前說明,則這個識別符號的作用域包含巢狀塊。函式的形參具有塊作用域,其開始點在標誌函式定義開始的第乙個左花括號處,結束於 標誌函式定義結束的右花括號處,例如:
void f( int x )
{//形參互的作用域開始於此
int y=3; //區域性變數y的作用域開始於此
int k;//k的作用域開始於此
}
識別符號的作用域
塊作用域 區域性作用域 檔案作用域 全域性作用域 函式原型作用域 函式作用域 類作用域 塊作用域 塊是函式中一對花括號 包括函式定義所使用的花括號 所括起的一段區域。在塊內說明的識別符號具有塊作用域,它開始於識別符號被說明的地方,並在標誌該塊結束的右花括號處結束。如果乙個塊內有乙個巢狀塊,並且該塊內...
C語言中的識別符號作用域
2018 01 15 建立人 ruo xiao com程式中該識別符號可以使用的區域。例如 函式內的區域性變數的作用域僅限於函式體本身。說明了兩點 1 其他的函式無法通過該變數名訪問它們。2 只要分屬不同的作用域,不同的變數可以起相同的名字,並且可以位於相同的位址。檔案作用域 函式作用域 塊作用域和...
識別符號的作用域,鏈結,儲存
2.識別符號的生存期 3.識別符號的儲存 4.extern的使用 翻譯單元 源 檔案.c 其所有標頭檔案.h 不細講 示例 int glogal 1 外部鏈結 全域性作用域 static int file 2 內部鏈結 檔案作用域 int main 識別符號的四大儲存期 具有靜態儲存期的變數在程式執...