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__`作为变量名时,编译器直接报错。
我很困惑:到底有什么规则?哪里可以使用下划线,哪里不能?为什么有些带下划线的名字