1
我在Linux代碼中看到了一堆名爲__foo的函數。雙下劃線代表什麼,什麼時候應該使用它?__func函數的約定是什麼?
我在Linux代碼中看到了一堆名爲__foo的函數。雙下劃線代表什麼,什麼時候應該使用它?__func函數的約定是什麼?
這意味着它是一個保留的標識符。 C++ 03和C99標準都提到了這一點。
C99:
7.1.3保留標識符
- 以下劃線和一個大寫字母或其他下劃線,始終保留用於任何用途的所有標識符。
- 以下劃線開頭的所有標識符總是保留用作普通標籤名稱空間和標籤名稱空間中具有文件範圍的標識符。
C++ 03:
包含雙下劃線(_ _)或以下劃線後跟大寫字母(2.11)開始的每個名稱被保留以用於任何用途的實施方式。
您也可以參考:
保留什麼樣的實現?像私人功能?爲什麼不使用私有/未導出的頭文件功能? – EpsilonVector
編譯器和編譯器的庫實現。 –
這是爲了避免標識衝突。 – Hailei