قواعد استخدام الشرطة السفلية في أسماء المعرفات في لغة 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__` كاسم متغير، أخطأ المترجم بخطأ.
أنا في حيرة: ما هي القواعد بالضبط؟ أين يمكنني استخدام الشرطة السفلية وأين لا يمكنني؟ لماذا بعض الأسماء التي تبدأ بشرطة سفلية تسبب مشاكل؟