I seguenti identificativi non hanno alcun collegamento: un identificatore dichiarato come qualcosa di diverso da un oggetto o una funzione; un identificatore dichiarato come parametro di funzione; un identificatore di ambito di blocco per un oggetto dichiarato senza l'identificatore di classe di memoria extern.Collegamento oscilloscopio C standard
{
static int a; //no linkage
}
Per un identificatore dichiarato con la classe di archiviazione specificatore extern in un ambito in cui una previa dichiarazione di tale identificatore è visibile, se la dichiarazione preventiva specifica collegamento interno o esterno, il legame tra l'identificatore in la dichiarazione successiva è la stessa del collegamento specificato nella dichiarazione precedente. Se non è visibile alcuna dichiarazione precedente, o se la dichiarazione precedente non specifica alcun collegamento, , l'identificatore ha il collegamento esterno.
{
static int a; //no linkage
extern int a; //a should get external linkage, no?
}
errore GCC: dichiarazione extern di una dichiarazione segue senza legame
Qualcuno può spiegarmi perché ottengo questo errore?
Grazie
potrebbe essere la semantica, "specifica alcun legame" contro "specifica 'no linkage'". La promozione automatica in questo caso sembra pazzesca. –
Non capisco la differenza. Potresti elaborare? – mindless