Avatar ·

C++标识符命名中下划线的使用规则

大家好!我刚开始学习C++,注意到在一些代码示例中,人们在变量名开头使用下划线,例如`_value`或`__internal`。我明白这可能是某种命名风格,但我觉得编译器对这些名字的行为有些奇怪。 例如,我尝试写了这样的代码: ```cpp #include class MyClass { private: int _value; public: MyClass(int v) : _value(v) {} int getValue() const { return _value; } }; int main() { MyClass obj(42); std::cout << obj.getValue() << std::endl; return 0; } ``` 一切编译通过并能运行,但后来我尝试这样做: ```cpp int _main() { return 0; } ``` 编译器发出了警告。而当我尝试使用`__LINE__`作为变量名时,编译器直接报错。 我很困惑:到底有什么规则?哪里可以使用下划线,哪里不能?为什么有些带下划线的名字