Kann das mal jemand einem Anfänger erklären ?
-
Hallo Forum...
ich bin absoluter C++ Anfänger und brauche ein wenig Starthilfe.
Ich habe angefangen das Tutorial 'Schornboeck' zu lesen und weiß bei meinem Beispielcode nicht, ob ich den richtig verstanden habe://Kommentare nach meinem Verständnis //statischen Konstanten Zeiger einrichten und ab //diesem den Text in den Speicher schreiben //auf welche Adresse zeigt der Zeiger ? Auf das T? static const ascii * tele_NameBuffer = "Telemetry"; //identisch wie oben static const ascii * _TELE_STR_TL_CMD = "at+TEL"; //Wird hier eine Variable mit dem Inhalt aus dem Speicherbereich, //Wo der Zeiger drauf zeigt erzeugt ? //Wenn ja, hätte man den Text nicht direkt in die Variable schreiben können? #define TELE_STR_TL_CMD ( ascii * ) _TELE_STR_TL_CMD
Ich versuche diese Samples zu verstehen.
Bitte helft mir.
Danke
-
[cpp]
//statischen Konstanten Zeiger einrichten und ab
//diesem den Text in den Speicher schreiben// es handelt sich um einen statischen Zeiger auf konstanten Inhalt
// der Zeiger waere konstant, wenn du ihn so deklariert: "static ascii* const ..."
// s. dazu FAQ//auf welche Adresse zeigt der Zeiger ? Auf das T?
// richtig, der Zeiger zeigt auf T, man koennte bei einer Übergabe sowohl
// tele_NameBuffer als auch &tele_NameBuffer[0] schrieben, was identisch ist, die
// Bedeutung aber nochmal verdeutlicht
static const ascii * tele_NameBuffer = "Telemetry";//identisch wie oben
static const ascii * _TELE_STR_TL_CMD = "at+TEL";//Wird hier eine Variable mit dem Inhalt aus dem Speicherbereich,
//Wo der Zeiger drauf zeigt erzeugt ?
//Wenn ja, hätte man den Text nicht direkt in die Variable schreiben können?// was du hier erzeugst ist ein Makro. Es wird vor dem eigentlichen
// Compilier-Vorgang vom Praeprozessor ausgewertet und zwar in der Form
// das jedes nachfolgende Vorkommen von "TELE_STR_TL_CMD" durch "( ascii * ) _TELE_STR_TL_CMD"
// ersetzt wird.
#define TELE_STR_TL_CMD ( ascii * ) _TELE_STR_TL_CMD[/cpp]Gruss,
DeSoVoDaMu
-
Danke, das hab ich kapiert.
Bald kommt bestimmt die nächste Frage....