Страницы

Поиск по вопросам

четверг, 28 ноября 2019 г.

Разница между .h и .hpp

#c++


В чем разница между файлами с расширениями .h и .hpp в C++? Что лучше использовать? 
    


Ответы

Ответ 1



Строго говоря разницы между ними нет совсем. Разница может быть лишь в том, как IDE их интерпретирует. .h, если следовать некоторой логике, это заголовок для C(.c), тогда как .hpp это заголовок для C++(.cpp, .cxx etc.). Но всё это условности и зависят от предпочтений и используемых IDE. К примеру, в Visual Studio мы имеем .h и .cpp файлы, по умлочанию. Единственно, на мой взгляд, где различное именование может принести пользу, это в проекте, где сочетается C и C++ код. Тогда стоит иметь .h/.c для C-кода и .hpp/.cpp для C++ когда. Других применений, кроме персональных предочтений, я не вижу.

Ответ 2



Принципиальной разницы в поведении препроцессора в зависимости от расширения хедера нет. По большей части ему плевать на расширение, он включит файл с любым расширением или без него. Разные расширения для С-ных и С++-ных хедеров сделаны скорее для удобства программистов. Если видите хедер .hpp - даже не пытайтесь включать его в проект, написанный на чистом С, потому что, скорее всего, в нём будут описаны структуры, характерные только для C++ (классы, шаблоны и т. п.). Хедер .h можно (с оглядкой на то, что C не является подмножеством C++) включать в проекты, написанные на C++. Также IDE может применять различные правила форматирования и подсветки синтаксиса для хедеров .h и .hpp.

Комментариев нет:

Отправить комментарий