Почему бы не объединить исходные файлы C перед компиляцией? [дубликат]
этот вопрос уже есть ответ здесь:
#включить все .cpp файлы в один блок компиляции?
5 ответов
преимущества / недостатки unity строит? [дубликат]
3 ответы
Я пришел из фона сценариев, и препроцессор в C всегда казался мне уродливым. Тем не менее я принял его, как я учусь писать небольшие программы на Си. Я действительно использую препроцессор только для включения стандартных библиотек и заголовочных файлов, которые я написал для своих собственных функций.
мой вопрос в том, почему программисты C просто не пропускают все включения и просто объединяют свои исходные файлы C, а затем компилируют их? Если вы поместите все ваши включает в себя в одном месте вам нужно будет только определить, что вам нужно один раз, а не во всех ваших исходных файлах.
вот пример того, что я описываю. Здесь у меня есть три файла:
// includes.c
#include <stdio.h>
// main.c
int main() {
foo();
printf("worldn");
return 0;
}
// foo.c
void foo() {
printf("Hello ");
}
делая что-то вроде cat *.c > to_compile.c && gcc -o myprogram to_compile.c в моем Makefile я могу уменьшить количество кода, который я пишу.
это означает, что мне не нужно писать файл заголовка для каждой функции, которую я создаю (потому что они уже находятся в основном исходном файле), а также это означает, что у меня нет чтобы включить стандартные библиотеки в каждый файл, который я создаю. Это кажется мне отличной идеей!
однако я понимаю, что C-очень зрелый язык программирования, и я представляю, что кто-то еще намного умнее меня уже имел эту идею и решил не использовать ее. Почему бы и нет?
Comments