Error : 'xxx': storage class changed to 'static'
-
Ich bekomme die oben genannte Fehlermeldung bei folgendem Code :
static void near foo(void) { unsigned int near xxx; ... }
Der Compiler will anscheinened, dass ich die Variable xxx auch mit nem static versehen, dann kommt keine Meldung mehr.
Was soll das? Warum muss ich xxx als static deklarieren?
-
Das finde ich auch komisch. Static vor Funktionen bedeutet was anderes als static vor Variablen. Nimm doch mal die near's raus.
-
Ich tippe auch dass es am near liegt. Ich habe keine Ahnung was das macht, aber wenn wir mal davon ausgehen dass es etwas ähnliches wie ein near-zeiger ist, dann passt es zu einer Variable auf den Stack einfach nicht dazu. Denn was auf den Stack kommt, liegt ganz oben - da kann der Compiler nichts anderes machen und es woanders hin packen.
-
Shade Of Mine schrieb:
Ich tippe auch dass es am near liegt. Ich habe keine Ahnung was das macht, aber wenn wir mal davon ausgehen dass es etwas ähnliches wie ein near-zeiger ist, dann passt es zu einer Variable auf den Stack einfach nicht dazu.
Ich kenne das vom Infineon C166, da werden Variablen im NDATA Segment abgelegt (also static), wenn sie near sind (können über 16 Bit Adressen angesprochen werden). Sie kommen nicht auf den Stack.
-
Jo, habs inzwischen auch rausgefunden, near passt halt nur zu ner static Variablen und nicht zu einer, die auf den Stack soll.
Logo, trotzdem danke.