Работа компилятора с несколькими файлами - C (СИ)

Формулировка задачи:

Я нарочно сделал неправильно(хочу понять логику работы компилятора) Почему ошибка _f уже определен в main.obj main.c
#include <stdio.h>
#include <stdlib.h>
#include "tmp.c"
 
int a;
 
int main(){
    system("pause");
}
tmp.c
#include <stdio.h>
 
void f(void){
    extern int a;
    printf("a=%d",a);
}

Код к задаче: «Работа компилятора с несколькими файлами - C (СИ)»

textual
//main.c
// содержимое stdio.h
// содержимое stdlib.h
// содержимое stdio.h
void f(void){
    extern int a;
    printf("a=%d",a);
}
int a;
int main(){
    system("pause");
}
 
// tmp.c
// stdio.h
void f(void){
    extern int a;
    printf("a=%d",a);
}

12   голосов, оценка 4.083 из 5


СОХРАНИТЬ ССЫЛКУ