用typedef struct和struct的区别要例子
时间: 2023-07-18 17:08:14 浏览: 78
`typedef struct` 是将一个 `struct` 定义的类型取一个别名,方便后续使用该类型时不需要再写完整的 `struct` 定义。它的语法如下:
```c
typedef struct {
int age;
char name[20];
} Person;
```
上面的代码定义了一个结构体 `Person`,其中包含一个 `int` 类型的 `age` 和一个长度为 20 的 `char` 数组 `name`。同时使用 `typedef` 将该结构体定义的类型取了一个别名 `Person`。
在使用时,我们可以直接使用 `Person` 来代替 `struct Person`,示例如下:
```c
#include <stdio.h>
typedef struct {
int age;
char name[20];
} Person;
int main() {
Person p1;
p1.age = 18;
strcpy(p1.name, "Jack");
printf("Name: %s, Age: %d\n", p1.name, p1.age);
return 0;
}
```
输出结果为:
```
Name: Jack, Age: 18
```
而不需要使用 `struct Person`。
相比之下,如果没有使用 `typedef`,则需要在使用该结构体时写出完整的结构体定义,示例如下:
```c
#include <stdio.h>
struct Person {
int age;
char name[20];
};
int main() {
struct Person p1;
p1.age = 18;
strcpy(p1.name, "Jack");
printf("Name: %s, Age: %d\n", p1.name, p1.age);
return 0;
}
```
这里需要在定义 `p1` 时写出完整的结构体定义 `struct Person`,否则编译器无法识别。
因此,使用 `typedef struct` 可以简化代码,提高代码的可读性和可维护性。
阅读全文