Frage

typedef const struct __CFString * a1;

In der obigen Typedef-Deklaration heißt es, dass a1 als Zeiger auf die konstante Struktur __CFString definiert ist.

Was bedeutet hier „__“?

Dann erstelle ich eine neue Definition als a2, wie unten beschrieben.

typedef const struct CFString * a2;

Wie unterscheidet sich a1 von a2?

War es hilfreich?

Lösung

Zunächst einmal die Unterstriche in __CFString sind Teil des Namens, also struct __CFString Und struct CFString sind verschiedene Typen, genau wie struct XXCFString Und struct CFString sind verschiedene Typen.

Zweitens ist jeder Name, der mit einem doppelten Unterstrich beginnt, für die Implementierung reserviert.Mit anderen Worten: Sie können keine Namen verwenden, die mit einem doppelten Unterstrich beginnen, ohne eine Namenskollision zu riskieren.

Hier ist eine weitere SO-Antwort mit weiteren Details: Welche Regeln gelten für die Verwendung eines Unterstrichs in einem C++-Bezeichner?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top