Folgendes Problem: Ich bin während meines Projektes auf folgendes Problem gestoßen: Es wird eine Variable deklariert: static OS_STACKPTR int Stack0[512]; /* Task stacks */ Die Deklaration der Variable ist im großen und ganzen kein Problem für mich. Jedoch welchen Sinn macht OS_STACKPTR In meinem C-Code habe ich folgendes define gefunden: #ifndef OS_STACKPTR #define OS_STACKPTR #endif Welchen Sinn macht die Definition von OS_STACKPTR? Ich bin sehr gespannt auf eure Antworten.
Deine Frage läßt sich mangels weiterer Angaben nur abstrakt beantworten. Vermutlich ist das fragliche OS für verschiedene Prozessoren und Compiler portiert worden oder das ist zumindest vom Entwickler so vorgesehen. In einer anderen Kombination ist der Wert dann unter Umständen nicht leer.
Durch das #define wird OS_STACKPTR zu einem Leerstring. Nach dem Präprozessorlauf steht da also static int Stack0[512]; eine ganz normale Definition. <Ratemodus ein> Das ganze dürfte aus einem Pakte stammen, welches für verschiedene CPU's und oder Betriebssysteme angeboten wird. Wenn du also genau wissen willst, was es mit dem OS_STACKPTR auf sich hat, musst du dir eine Variante deines Codes besorgen, in dem dieses Makro nicht in einen Leerstring exapandiert. Eventuell gibt es ja in einem Header File auch noch ein anderes #define dafür, welches wieder über einen #ifdef von der aktuellen Konfiguration des Pakets abhängt. Erst dann, wenn du da fündig wirst, kann man weitere Recherche betreiben, warum und wieso es da eine Spezialität gibt bzw. was damit bezweckt wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.