170 похожих чатов

Хотел спросить, почему header file называется .h? Я понял типа

это от начальной буквы, но я не понял почему именно так, типа в этих файлах же тоже пишется код на c++, почему я не могу назвать пользовательскую библиотеку .cpp и импортировать его в свой код? В универе проходим c++, этот момент не объяснили, на мой вопрос ответили "Ты обязан так называть, по другому нельзя"

9 ответов

19 просмотров

Это соглашение. По сути, имена файлов ничем не ограничены. Вы можете назвать файл .java, скомпилировать его gcc, или подключить заголовочный файл с именем head.pas. Только в коде это выглядит дико. Есть общие правила именования файлов, соглашения. Их стоит придерживаться, но они не прописаны жёстко в комплияторе.

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

Была идея называть их hpp, но в массе не прижилось. А вообще дать заголовочному файлу расширение cpp можно. Во многих случаях ничего не поломается. Но путаница возникнет. Стандартс.

можно называть по другому, на компиляцию это не влияет. Но так принято, по хорошему вообще-то надо hpp и cpp использовать

Потому что слово header начинается с буквы H

Язык c++ как и язык Си никак не ограничивают и не регламентируют название и расширение заголовочных файлов, Поэтому ты можешь ставить им любое решение Какое тебе хочется хоть. PDF

Про по-другому нельзя ваши преподаватели сильно неправы. Наоборот можно как угодно. А вот если ты придёшь на работу и будешь заголовки называть .doc То коллеги тебя очень быстро научат уму-разуму

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта