typedef和struct区别
时间: 2023-10-23 20:39:24 浏览: 72
typedef和struct都是C语言中的关键字,用于定义自定义数据类型,但它们有不同的作用。
typedef是类型定义符,用于为已有类型起一个新的别名。通过typedef可以将较长或难记的类型名定义为一个更简单、易记的别名,提高程序的可读性和可维护性。例如:
typedef unsigned char byte;
typedef int (*FuncPtr)(int, int);
上述代码定义了两个新的类型别名:byte和FuncPtr。byte是unsigned char类型的别名,FuncPtr是一个指向函数的指针类型,该函数有两个int类型的参数,返回值也是int类型。
struct是结构体,用于定义一个包含多个不同数据类型成员的数据类型。结构体可以通过一个变量名来访问其中的各个成员。例如:
struct Student {
char name[20];
int age;
float score;
};
上述代码定义了一个结构体Student,包括三个成员:name、age和score。可以通过以下方式访问结构体中的成员:
struct Student s;
strcpy(s.name, "Tom");
s.age = 18;
s.score = 89.5;
注意,结构体定义的同时也可以使用typedef关键字定义一个类型别名。例如:
typedef struct {
char name[20];
int age;
float score;
} Student;
上述代码定义了一个类型别名Student,表示一个包含三个成员的结构体,可以直接使用Student作为类型名,而不必使用struct关键字。例如:
Student s;
strcpy(s.name, "Tom");
s.age = 18;
s.score = 89.5;
阅读全文