stavo eseguendo i seguenti codici compilati insieme come: gcc A.c B.c -o combined
Esterno in più file e l'eventuale doppia definizione
Programma A:
#include<stdio.h>
int a=1;
int b;
int main()
{
extern int a,b;
fun();
printf("%d %d\n",a,b);
}
Programma B:
int a;
int b=2;
int fun()
{
printf("%d %d\n",a,b);
return 0;
}
a correre la " combinato "programma l'output era:
1 2
1 2
.210
Ora, ho un paio di dubbi su questo:
Perché non è l'uscita:
non un Are e b definito due volte?
Si prega di spiegare questi chiaramente, ho avuto un sacco di problemi di comprensione extern e pochi di questi dubbi continuano a venire di tanto in tanto.
Grazie in anticipo.
si tenta di ingannare il compilatore e il compilatore ti ha ingannato. –
Non si tratta di ingannare il compilatore, si tratta di ottenere i concetti corretti. – tapananand