看書小記2(《C專家編程》)

來源:互聯網
上載者:User

1.  NUL用來結束一個ACSII字串, NULL表示null 指標


2. break語句跳出最近的那層迴圈語句或switch語句


3. static:

 (1). 修飾局部變數

局部變數存放在棧,生命週期隨語句塊結束而結束。static對局部變數修飾後,範圍不變,但生命週期持續到整個程式結束,並存放在待用資料區。

用static修飾局部變數,只在初次運行時進行初始化,且只進行一次。

void Func()
{
static int a = 1;
a++;
cout<<a<<endl;
}


int _tmain(int argc, _TCHAR* argv[])
{
//a = 2;
Func(); //2
Func(); //3

return 0;
}

 (2). 修飾全域變數 & 函數

A檔案中的全域變數(int a = 1)可以通過在B檔案中(extern int a)的方式訪問。

但static int a = 1之後無法訪問,static將原本全域可見的a變數變為本源檔案可見。

修飾函數的情況與全域變數一致。

 (3). C++中的static

C++類中,某個函數用static修飾,表示該函數屬於類不屬於類的某個特定對象;某個變數用static修飾, 表示變數屬於類不屬於類的某個特定對象。

它的儲存空間只有一個副本。


4. extern

extern表示此函數/變數是在別處定義的,且要在此引用。

與include的相比,extern可以加速編譯過程。

C++中調用C庫函數,需要用extern "C",來告訴連結器連結時用C函數規範來連結,因為C++與C編譯完成後在目標代碼中的命名規則不同,以此來解決名字匹配問題。


參考:http://developer.51cto.com/art/201104/256820.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.