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?

È stato utile?

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 ++?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top