Соглашения об именовании переменных в C ++ - PullRequest
33 голосов
/ 24 октября 2008

Я из мира .NET, и я новичок в написании C ++. Мне просто интересно, каковы предпочтительные соглашения об именах, когда речь идет о именовании локальных переменных и членов структуры.

Например, унаследованный код, который я унаследовал, имеет много таких:

struct MyStruct
{
   TCHAR           szMyChar[STRING_SIZE];
   bool            bMyBool;
   unsigned long   ulMyLong;
   void*           pMyPointer;
   MyObject**      ppMyObjects;
}

Исходя из фона C #, я был шокирован, увидев переменные с венгерской нотацией (я не мог перестать смеяться над префиксом pp в первый раз, когда увидел его).

Вместо этого я бы лучше назвал свои переменные таким образом (хотя я не уверен, что использование заглавных букв в первой букве - хорошее соглашение. Я видел другие способы (см. Ссылки ниже)):

struct MyStruct
{
   TCHAR           MyChar[STRING_SIZE];
   bool            MyBool;
   unsigned long   MyLong;
   void*           MyPointer;
   MyObject**      MyObjects;
}

Мой вопрос: является ли (прежний способ) по-прежнему предпочтительным способом именования переменных в C ++?

Ссылки:

http://geosoft.no/development/cppstyle.html

http://www.syntext.com/books/syntext-cpp-conventions.htm

http://ootips.org/hungarian-notation.html

Спасибо!

Ответы [ 12 ]

1 голос
/ 24 октября 2008

Венгерская нотация была распространена среди пользователей Win32 и MFC API. Если ваши предшественники использовали это, вы, вероятно, лучше всего продолжать использовать его (даже если это отстой). В остальном мире C ++ никогда не было этого соглашения о мертвых мозгах, поэтому не используйте его, если вы используете что-то кроме этих API.

0 голосов
/ 21 декабря 2008

Если вы используете CamelCase, условием является использование заглавной буквы для структур классов и не примитивных имен типов и строчных букв первой буквы для членов данных. Заглавные буквы методов, как правило, смешанные, мои методы, как правило, глаголы и уже искажены паренсом, поэтому я не использую заглавные буквы.

Лично я не люблю читать код CamelCase и предпочитаю подчеркивать нижний регистр для идентификаторы данных и методов, использование заглавных букв и резервирование заглавных букв для сокращений и редкий случай, когда я использую макрос (предупреждение, что это MACRO).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...