Почему бы не объединить исходные файлы C перед компиляцией? [дубликат]



этот вопрос уже есть ответ здесь:



Я пришел из фона сценариев, и препроцессор в 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-очень зрелый язык программирования, и я представляю, что кто-то еще намного умнее меня уже имел эту идею и решил не использовать ее. Почему бы и нет?

550   0  

Comments

    Ничего не найдено.