用struct和typedef struct定義一個(gè)結(jié)構(gòu)體有什么區(qū)別

小云
88
2023-08-05 23:13:31

在C語(yǔ)言中,struct用于定義一個(gè)結(jié)構(gòu)體,而typedef struct用于給結(jié)構(gòu)體起一個(gè)別名。

使用struct關(guān)鍵字定義結(jié)構(gòu)體時(shí),需要在定義結(jié)構(gòu)體的同時(shí)給出結(jié)構(gòu)體的名稱。例如:

struct Person {
char name[20];
int age;
};

而使用typedef struct,則可以在定義結(jié)構(gòu)體的同時(shí)給結(jié)構(gòu)體起一個(gè)別名,方便之后的使用。例如:

typedef struct {
char name[20];
int age;
} Person;

在上述例子中,Person就是結(jié)構(gòu)體的別名,可以直接使用Person來(lái)創(chuàng)建結(jié)構(gòu)體變量。例如:

Person p1;
p1.age = 20;

這樣,使用typedef struct定義結(jié)構(gòu)體后,可以直接使用別名來(lái)創(chuàng)建結(jié)構(gòu)體變量,而不需要再使用struct關(guān)鍵字。這樣的話,代碼更加簡(jiǎn)潔,易讀性也更好。

0