C++ 識別項
識別項是字元序列,用來表示下列其中一項:
物件或變數名稱
類別、結構或等位名稱
列舉類型名稱
類別、結構、等位或列舉的成員
函式或類別成員函式
typedef 名稱
標籤名稱
巨集名稱
巨集參數
下列字元在識別項中做為第一個字元,或做為任何後續字元都是合法的:
_ a b c d e f g h i j k l m
n o p q r s t u v w x y z
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
下列字元在識別項中,除了第一個字元以外,做為其任何字元都是合法的:
0 1 2 3 4 5 6 7 8 9
Microsoft 特定的
Microsoft C++ 識別項只有前 2048 個字元是有意義的。 使用者定義類型的名稱已由編譯器「裝飾」來保存類型資訊。 產生的名稱 (含類型資訊) 不能超過 2048 個字元。(如需詳細資訊,請參閱裝飾名稱)。會影響裝飾識別項長度的因素包括:
識別項表示的是使用者定義類型的物件還是衍生自使用者定義類型的類型。
識別項表示的是函式還是衍生自函式的類型。
函式的引數數目。
貨幣符號也是 Visual C++ 中的有效識別項。
// dollar_sign_identifier.cpp
struct $Y1$ {
void $Test$() {}
};
int main() {
$Y1$ $x$;
$x$.$Test$();
}
END Microsoft 特定的
識別項的第一個字元必須是字母 (大寫或小寫) 字元或底線 (_)。 由於 C++ 識別項要區分大小寫,fileName 與 FileName 不同。
識別項的拼字、大小寫不能與關鍵字完全相同。 包含關鍵字的識別項是合法的。 例如,Pint 是合法的識別項,即使它包含關鍵字 int。
在識別項開頭使用兩個連續底線字元 (__),或者單一前置底線後面接著一個大寫字母,皆為保留給 C++ 在所有範圍中實作。 因為可能與目前或未來保留的識別項相衝突,您應該避免在具有檔案範圍的名稱中使用一個後面接著小寫字母的前置底線。