قواعد استخدام شرطة السفلية في معرفات لغة C++
مرحباً بالجميع! لقد بدأت للتو في تعلم لغة C++ ولاحظت أن شرطة السفلية `_` تُستخدم بطرق مختلفة في أمثلة الأكواد. أحياناً تكون في بداية اسم المتغير مثل `_value` أو `__value`، وأحياناً في النهاية مثل `value_`. وفي بعض المكتبات القياسية رأيت أسماء مثل `_M_engine` أو `__func__`.
لقد كتبت كوداً صغيراً وتم تجميعه دون أخطاء:
```cpp
#include
int _myVar = 10;
int main() {
int __anotherVar = 20;
std::cout << _myVar + __anotherVar;
return 0;
}
```
ولكن بعد ذلك قرأت أن بعض المعرفات التي تحتوي على شرطة سفلية محجوزة للمترجم والمكتبة القياسية. الآن أخشى أن يتعطل كودي فجأة أو يسبب سلوكاً غير محدد.
أرجو توضيح ما هي قواعد استخدام شرطة السفلية في الأسماء؟ متى يمكن استخدامها ومتى لا يمكن؟ ولماذا هذه القواعد صارمة إلى هذا الحد؟ سأكون ممتناً لشرح مفصل مع أمثلة على الاستخدام الصحيح وغير الصحيح.