static extern const

來源:互聯網
上載者:User

標籤:static   const   extern   關鍵字   

static1.局部變數
// 該變數生命週期不僅僅是進入該函數後,而是整個程式運行期間void foo(){static int nVar = 0;printf("var = %d\n", ++nVar);}

2.保護本地變數
static int g_nVar; // g_nVar只能在本檔案中使用,其他檔案不能通過extern訪問該變數

3.靜態成員變數
// 該變數不屬於對象,而屬於這個類class Foo{public:static int nCount;};int Foo::nCount = 0;int main(){cout << Foo::nCount << endl;return 0;}

4.靜態成員函數
// 該函數不屬於對象,而屬於這個類class Foo{public:static void ShowClassTag();};void Foo::ShowClassTag(){cout << "class Foo" << endl;}int main(){Foo::ShowClassTag();return 0;}

const1.定義常量
const int  nItem = 0;const int* pnItem = &nItem;

2.保護變數不被外部使用
//file1.cconst int g_nLocalVar = 100;int g_nVar = 100;//file2.cextern const int g_nLocalVar; // 非法聲明extern int g_nVar;            // 合法

extern1.聲明所引用對象已被定義
extern int g_nFoo;int main(){g_nFoo++;cout << g_nFoo << endl;return 0;}int g_nFoo = 0;

2.聲明該變數可被外部使用
// file1.cextern const int g_nItem;int main(){cout << g_nItem << endl;return 0;}// file2.c// 如果此處不加extern,該變數不能被外部存取的extern const int g_nItem = 100;


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.