1.h
extern int a;
1.c
#include <stdio.h>
#include "1.h"
int main(){
printf("%d\n", a);
return 0;
}
2.c
#include "1.h"
int a = 6;
Это компилируется и работает очень хорошо (g cc 1. c 2. c) при удалении extern
из 1.h
и печати 6
. Я знаю, что удаление может привести к определению a
в каждой единице перевода (объектном файле), но в чем проблема? не компоновщик просто git избавиться от него при компоновке, так как он компилируется без ошибок?