У меня есть три файла, и я хочу их скомпилировать.
Первый файл app.c
#include"sum.h"
int main (void)
{
sum();
return 0;
}
Второй файл — sum.h.
#ifndef SUM_H
#define SUM_H
void sum ();
#endif
и третий файл sum.c
#include"sum.h"
void sum ()
{
return;
}
и я пишу эти заявления:
#ifndef SUM_H
#define SUM_H
...
...
...
#endif
для предотвращения множественных определений содержимого sum.h
.
Во время компиляции app.c
войдет в стадию предварительной обработки, а затем sum.c
войдет в стадию предварительной обработки. Мой вопрос, когда sum.c
войдет, как препроцессор узнает, что SUM_H
определено в последнем файле myapp? Я думаю, что каждый исходный файл проходит этап предварительной обработки и этап компиляции индивидуально.