Перейти к содержанию
    

Проект состоящий из нескольких файлов

Посмотрел код, из проекта Open Pilot от Geohot, https://github.com/commaai/openpilot/tree/master/board и как то не понял, код оформлен (ну пускай авто отформатирован), но зачем он так сделал, в заголовочных .h файлах лежат куски кода и потом все эти файлы включаются в main.c

Да, это будет работать и даже откомпилируется (наверно с множеством предупреждений т.к. прототипов функций нет, хотя может он их по порядку выставил :)), но это все равно что весь код разместить в одном файле и дальнейшая модификация будет затруднена. (Это все по моему мнению.)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дикий изврат.

Мне только один раз понадобилось код размещать в инклюдируемых файлах — для реализации операций поиска связных компонет. Код почти одинаковый, различающийся совсем немногим для 4- и 8-связных областей, поэтому решил, что легче будет с разными дефайнами заинклюдить один и тот же файл дважды!

// на гитхабе у меня лежит. Кажись, в с-сниппетах. Не помню уж точно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ИМХО, куски кода в хедерах нужны только в случае, если код нужно инлайнить, т.е. описать как static inline и проблем быть не должно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но зачем он так сделал, в заголовочных .h файлах лежат куски кода и потом все эти файлы включаются в main.c

 

Плохо знает используемый компилятор. Как только пойдут множественные включения в несколько компилируемых единиц, то появятся ошибки линковки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может попытка добиться массового инлайна до того как в гцц толково заработла опция lto (а она кстати совсем недавно заработала без граблей).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...