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

StackOverflow https://stackoverflow.com/questions/654220

Вопрос

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

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

Действительно ли "неправильно" пометить ваши headers .h или это просто что-то, что меня раздражает?

Редактировать:

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top