1)typedef基本数据类型取“别名”
typedef unsigned int size;typedef unsigned int16 u16;typedef unsigned int8 u8;
2)typedef为自定义数据类型取“别名”
typedef struct{menu_f btn1; // make arraymenu_f btn2;menu_f btn3;draw_f draw;itemLoader_f loader;}menuFuncs_t;
typedef enum{DISPLAY_DONE,DISPLAY_BUSY,//DISPLAY_TOOFAST} display_t;其中,枚举类型名 表示定义的枚举类型的名称,枚举常量1、枚举常量2 等表示枚举类型中的常量。每个枚举常量都有一个整数值,它们的默认值从 0 开始,依次递增 1。
typedef为数组取“别名”
typedef char arr_name[20];
这是一个 C 语言中的类型定义语句,用于定义一个名为 arr_name
的数组类型,数组元素类型为 char
,数组长度为 20。
具体来说,typedef char arr_name[20];
定义了一个名为 arr_name
的数组类型,它包含了 20 个 char
类型的元素。通过这个类型定义,你可以使用 arr_name
来声明一个长度为 20 的字符数组,而不必每次都写出完整的数组声明语句。
例如,使用这个类型定义可以这样声明一个长度为 20 的字符数组:
arr_name my_array;
这样就等同于以下完整的数组声明:
char my_array[20];
这种类型定义可以使代码更加简洁和易读,特别是在多处需要声明相同类型的数组时。
4)typedef为指针取“别名”
typedef void (*display_f)(void);
这是一个 C 语言中的类型定义语句,用于定义一个函数指针类型 display_f
。具体来说,display_f
是一个指向无返回值、无参数的函数的指针类型。
在这个类型定义中,typedef
关键字用于定义一个新的类型名 display_f
,它是一个函数指针类型。函数指针类型是指可以指向函数的指针类型,它可以用于将函数作为参数传递给其他函数,或者将函数作为返回值返回。
这个类型定义语句的语法如下:
typedef 返回类型 (*指针变量名)(参数列表);
其中,返回类型
表示函数的返回值类型,参数列表
表示函数的参数列表,指针变量名
表示定义的函数指针类型的名称。
因此,typedef void (*display_f)(void);
定义了一个名为 display_f
的函数指针类型,它可以指向一个无返回值、无参数的函数。在实际使用中,可以使用 display_f
类型来声明函数指针变量,并将其指向一个符合要求的函数。例如:
void my_display() { printf("Hello, world!\n");}int main() { display_f display_ptr = my_display; // 将函数指针指向 my_display 函数 display_ptr(); // 调用函数指针,输出 "Hello, world!" return 0;}
在这个示例中,display_ptr
是一个 display_f
类型的函数指针变量,它被赋值为 my_display
函数的地址。然后,通过调用 display_ptr()
来调用 my_display
函数,输出 “Hello, world!”。