回覆列表
  • 1 # 夏怡之家

    首先,C++裡關於下劃線的問題是源於C語言,因為C++允許用extern "C"來修飾程式碼以C語言語法方式編譯。然後說C語言裡的下劃線:C語言確實允許以下劃線開頭的函式存在,實際上你用一個下劃線開頭的函式名或者變數是沒問題的,但有可能會發生命名衝突。

    凡是以兩個或一個下劃線開始,後面緊跟著一個大寫字母的識別符號,不管它出現在哪裡,都是保留給編譯程式或標準庫函式使用的。此外,凡是以一個下劃線開始,後面不管跟著什麼內容的識別符號,如果它出現在檔案範圍內(即它不是出現在一個函式內),那麼它也是被保留的。如果你用一個保留的識別符號來作一個變數的名稱,結果是沒有定義的(程式可能無法編譯,或者可以編譯但會崩潰)。即使你能非常幸運地找到一個目前還沒有被你的編譯程式或函式庫使用的識別符號,你也應該記住這樣的識別符號是保留起來供將來使用的。因此,最好還是避免使用以下劃線開始的變數名或函式名。舉例說明:VC裡getch函式不是一個標準庫函式,因此,它的名字是_getch,大多數編譯器都把非標準庫、但又是編譯器自己提供的庫函式以下劃線開頭。另外,也有編譯器的main函式在編譯完成以後,名字是_main,如果你自己寫了一個函式叫_main,那麼編譯器可能不知道最終該連結哪個。所以,你可以理解為:編譯器需要預留一些名字,為了方便起見,大多數編譯器預留的名字都是以下劃線開頭的,久而久之就形成了標準。雖然下劃線開頭也可以用,但不推薦使用,因為容易造成名字衝突。

  • 中秋節和大豐收的關聯?
  • 夫妻之間的有哪些暗語?