建議使用 Visual Studio 2017

存留期和可視性的摘要

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

下表是多數識別項的存留期和可視性的特性摘要。 前三欄註明定義存留期和可視性的屬性。 若識別項帶有前三欄指定的屬性,其存留期和可視性就如第四和第五欄所示。 不過,此表只包含部分可能的情況。 如需詳細資訊,請參閱儲存類別

存留期和可視性的摘要

屬性:

層級
項目儲存類別

指定名稱
結果:

存留期
可視性
檔案範圍變數定義staticGlobal發生之原始程式檔的其餘部分
變數宣告externGlobal發生之原始程式檔的其餘部分
函式原型或定義staticGlobal單一原始程式檔
函式原型externGlobal原始程式檔的其餘部分。
區塊範圍變數宣告externGlobal區塊
變數定義staticGlobal區塊
變數定義autoregisterLocal區塊

說明

下列範例說明變數的區塊、巢狀和可視性:

程式碼

// Lifetime_and_Visibility.c  
  
#include <stdio.h>  
  
int i = 1;  // i defined at external level  
  
int main()  // main function defined at external level  
{  
    printf_s( "%d\n", i ); // Prints 1 (value of external level i)  
    {                                 // Begin first nested block  
        int i = 2, j = 3;          // i and j defined at internal level  
        printf_s( "%d %d\n", i, j );  // Prints 2, 3  
        {                             // Begin second nested block  
            int i = 0;                // i is redefined  
            printf_s( "%d %d\n", i, j ); // Prints 0, 3  
        }                             // End of second nested block  
        printf_s( "%d\n", i );        // Prints 2 (outer definition  
                                      //  restored)  
    }                                 // End of first nested block  
    printf_s( "%d\n", i );            // Prints 1 (external level  
                                      // definition restored)  
    return 0;  
}   

註解

在此範例中,可視性共有四個層級:外部層級和三個區塊層級。 值會列印至螢幕,如每個陳述式之後的註解所示。

存留期、範圍、可視性和連結

顯示: