Typedef CFString che inizia con __
-
21-12-2019 - |
Domanda
typedef const struct __CFString * a1;
.
Nella dichiarazione di cui sopra TypeDef dice che A1 è definita come puntatore alla struttura costante __CFString.
Qui cosa significa "__"?
Quindi creo una nuova definizione come A2, descritta di seguito.
typedef const struct CFString * a2;
.
Allora, come A1 è diverso da A2?
Soluzione
Prima di tutto, i caratteri di sottolineatura in __CFString
fanno parte del nome, quindi struct __CFString
e struct CFString
sono tipi diversi, proprio come struct XXCFString
e struct CFString
sono diversi tipi.
Secondo, qualsiasi nome che inizia con un DOPPIA UNDERSCORE è riservato all'attuazione.In altre parole, non è possibile utilizzare i nomi che iniziano con un doppio sottolineatura senza rischiare una collisione del nome.
Ecco un'altra risposta con più dettagli: Quali sono le regole per l'utilizzo di un sottolineamento in un identificatore C ++?