Является ли использование .h в качестве заголовка для файла C ++ неправильно? - PullRequest
3 голосов
/ 17 марта 2009

Не правильно ли использовать .h в качестве заголовка для файла c ++?

Я вижу это повсюду, особенно с кодом, написанным в стиле "Си". Я заметил, что Emacs всегда выбирает стиль подсветки C для заголовка .h, но c ++ для hpp или hh.

Это действительно "неправильно", чтобы маркировать ваши заголовки .h или это просто то, что меня раздражает?

EDIT:

Есть веская причина, по которой меня это раздражает, если у меня есть файлы проекта, помеченные как 'hpp & cpp', я могу сойти с ума с помощью 'grep что-то * pp' и т. Д. В противном случае я должен напечатать '.h cpp «

Ответы [ 5 ]

13 голосов
/ 17 марта 2009

ничего плохого в этом нет. Это значение по умолчанию для Microsoft Visual C ++.

Просто следуйте стандарту, который вам нравится, и придерживайтесь его.

5 голосов
/ 17 марта 2009

Это не неправильно называть ваши C ++ заголовки .h. Нет никаких правил относительно того, какие расширения должен использовать ваш код. Для ваших не заголовков MSVC использует .cpp и в Linux, а также .cc. Единого глобального стандарта не существует, и .h определенно очень широко используется.

Но я бы сказал, что вызов ваших заголовков .hpp (я тоже видел .hh несколько раз) гораздо более последовательный и информативный, чем просто использование .h.

3 голосов
/ 17 марта 2009

Вы можете использовать .h, .H, .hpp, .hxx, .hh или что-либо еще. Точно так же, как вы можете свободно использовать .c для источников на C и .C, .cpp, .cc или .cxx для источников на C ++. Расширение в значительной степени является соглашением.

2 голосов
/ 17 марта 2009

Поскольку в Emacs нет простого способа определить, является ли файл .h файлом C или C ++, нелепо выбирать C для файлов .h и C ++ для файлов .hpp.

Обратите внимание, что все файлы заголовков надстроек имеют суффикс .hpp.

2 голосов
/ 17 марта 2009

Как и в других файлах - .c для C, .cpp для C ++ - используйте .h для C, .hpp для C ++. Это удовлетворит большинство компиляторов / редакторов. В этом нет ничего плохого, но его можно использовать, чтобы дать подсказку, какой из двух языков вы на самом деле используете.

Если вы хотите остановить это поведение без переименования файлов, вам следует взглянуть на конфигурацию Emacs и попытаться изменить определение исходного кода.

...