Я заметил, что библиотека повышения использует заголовочные файлы (.hpp
).
Мне любопытно начиная с большинства исходных файлов, я вижу нормальное использование .h
заголовочные файлы.
Могли там быть любые специальные экземпляры, которые гарантируют использование .hpp
вместо .h
?
Спасибо
Просто условность, ничего особенного. Фактически, вы можете использовать любое расширение для включаемых файлов.
.hpp, .H и т.д. - это свободная конвенция для заголовочных файлов C++, .tcc - свободная конвенция для реализации шаблонов C++, .h - довольно сильная конвенция для c-файлов.
Boost использует расширение hpp, QT использует расширение .h, STL не имеет расширения. Я уверен, что есть библиотеки, использующие .H, но я их не видел.
Действительно, Отавио прав.
Я использую hpp / h, чтобы различать два языка при создании многоязычных продуктов. Например, определение класса может находиться в .hpp (реализация в .cpp), тогда как файл .h будет определять только функции, поддерживаемые C. Для этого разделения важно знать разницу между языками - с этой целью Я передаю * .c через gcc и * .cpp через g ++.
Целью директивы препроцессора #include "filename"
является замена строки #include
содержимым filename
.
Таким образом, подойдет любое имя для файла, но, по соглашению, включаемые файлы - это «.h» или «.hpp». Одним из преимуществ является подсветка синтаксиса в редакторе вашего выбор (vim в моем случае).
Я слышал, что программисты UNIX и Linux часто используют .hh и .cc вместо .cpp и .h. Лично мне нравится называть свои файлы заголовков .hh, потому что это помогает emacs различать подсветку синтаксиса C и C ++. Я также использую расширение .cc, потому что оно хорошо смотрится вместе с .hh и короче, чем .cpp. И я обычно пишу код в среде Linux и для нее.