[C]Нуб-вопрос про заголочные файлы

nemec2707

Есть у меня в проекте файл main.c, и несколько других .с файлов, например uart.c, timers.c, spi.c
Нужно подключить стандартный заголовочный файл <interrupts.h> для каждого из них. Как это правильно сделать? Сейчас я подключаю в каждом заголовочном файле, т.е. в main.h, uart.h, timers.h пишу #include <interrupts.h>, но хочу перестать быть быдлокодером. :)
То, что на место инклуда тупо механически подставляется текст - понимаю.

ppplva

Наверное, его нужно включить туда куда нужно, а в остальные файлы - не нужно? Тогда сделай ровно это :) Можешь написать скрипт который будет убирать инклюд из файлов по одному и проверять сборку.

nemec2707

я думал, есть решение, позволяющее включить его в одно место для всех сразу

ppplva

-include file
Но это для особых случаев.

Serab

У меня есть спец.файл common.h, в который включаются все стандартные заголовки. Он инклюдится в каждый .cpp (только cpp) файл в первую очередь. Больше нигде стандартные заголовки не инклюдятся.
Можно еще настроить предкомпиляцию заголовков.

tokuchu

т.е. в main.h, uart.h, timers.h
А зачем на каждый .c файл делать ,h файл? И как уже сказали, инклудить нужно скорее всего в .c файл, а в .h файл нужно инклудить только если именно там это нужно, т.е. есть определения, которым нужны другие включаемые определения.

nemec2707

А зачем на каждый .c файл делать .h файл?
я в этих h-файлах размещаю прототипы функций из соответствующих с. файлов, чтобы можно было юзать эти фунцкии в других c. файлах, подключив нужный заголовочный.

tokuchu

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

apl13

#include "main.h"

int main(int argc, char **argv) {
return _Main(argc, argv); // we need to go deeper!
}
Оставить комментарий
Имя или ник:
Комментарий: