Struct et typedef struct en langage C et C ++

Langage C

// c
typedef struct Student {
   
    
    
    int age; 
} S;
等价于
// c
struct Student {
   
    
     
    int age; 
};

typedef struct Student S;
À ce stade, S est équivalent à struct Student, mais les deux espaces de noms d'identificateurs sont différents.
De plus, vous pouvez définir void Student () {} qui n'entre pas en conflit avec struct Student.
En C ++,
les règles du compilateur pour le positionnement des symboles (règles de recherche) ont changé, ce qui est différent du langage C.
1. Si struct Student {...}; est défini dans l'espace d'identifiant de classe, lorsque Student me; est utilisé, le compilateur recherchera la table d'identifiant global. Si Student n'est pas trouvé, il recherchera dans l'identifiant de classe.
Autrement dit, vous pouvez utiliser Student ou struct Student, comme suit:

// cpp
struct Student 

Je suppose que tu aimes

Origine blog.csdn.net/it_xiangqiang/article/details/112977975
conseillé
Classement