Таким образом, я получаю точку заголовков против исходных файлов. Что я не понимаю, так это то, что компилятор знает, как компилировать все исходные файлы. Пример:
example.h
#ifndef EXAMPLE_H
#define EXAMPLE_H
int example(int argument); // prototype
#endif
example.c
#include "example.h"
int example(int argument)
{
return argument + 1; // implementation
}
main.c
#include "example.h"
main()
{
int whatever;
whatever = example(whatever); // usage in program
}
Как компилятор, компилирующий main.c
, знает реализацию example()
, когда ничего не включает example.c
?
Это что-то вроде среды IDE, где вы добавляете файлы в проекты и прочее? Есть ли способ сделать это «вручную», так как я предпочитаю простой текстовый редактор изворотливым IDE?