C ++标识符

时间:2012-08-18 19:11:50

标签: c++ identifier

C ++ Primer说:

  

我们在程序中定义的标识符可能不包含2个连续字符   下划线,标识符也不能以下划线开头   立即用大写字母。此外,标识符被罚款   函数外部可能不以下划线开头

一切都很好,但是

int _c = 55;                  // outside function starts with _

int main () {

    int _A = 12;              // _ followed by uppercase letter
    cout << _A << endl;

    int __b__ =33;            // 2 consecutive __
    cout << __b__ << endl;

    cout << _c << endl;

}

以上代码使用以下标记在mac g++ 4.7.1上编译完全正常

g++ -pedantic -Wall -Werror -std=c++11 -O3 -funroll-loops -fprefetch-loop-arrays

我错过了什么?

2 个答案:

答案 0 :(得分:9)

穿过街道而不是双向寻找交通不会保证你被公共汽车碾过,但这仍然是一个坏主意。

其中一天它不起作用......

答案 1 :(得分:4)

无。带有前导下划线后跟大写字母和带有两个下划线的标识符的标识符仅保留。

您的编译器供应商可能决定随时使用它们(例如,编译器供应商使用_A作为关键字是完全正确的)因此您不应该使用它们。通常,标准库是使用保留标识符实现的,因此它们不会导致编译错误。