Fragen zur Variablendeklaration

Gast #1702774
Lesenswert?

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.
Gast #1702801
Lesenswert?

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.
#1702806
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren