Avatar ·

Regras para uso do caractere sublinhado em identificadores C++

Olá a todos! Comecei a estudar C++ recentemente e notei que, em diferentes exemplos de código, o caractere sublinhado `_` é usado de maneiras diferentes. Às vezes ele aparece no início do nome de uma variável, como `_value` ou `__value`, às vezes no final — `value_`. E em algumas bibliotecas padrão, vi nomes como `_M_engine` ou `__func__`. Escrevi um pequeno código que compilou sem erros: ```cpp #include int _myVar = 10; int main() { int __anotherVar = 20; std::cout << _myVar + __anotherVar; return 0; } ``` Mas depois li que alguns identificadores com sublinhado são reservados para o compilador e a biblioteca padrão. Agora estou com medo de que meu código possa quebrar inesperadamente ou causar comportamento indefinido. Por favor, me digam: quais são as regras para usar sublinhado em nomes? Quando posso usá-lo e quando não posso? E por que essas regras são tão rigorosas? Agradeço uma explicação detalhada com exemplos de uso correto e incorreto.