C语言中typedef的四种用法(附带详细解析!!)
zhoutanooi 2024-09-16 14:05:05 阅读 86
1)typedef基本数据类型取“别名”
<code>typedef unsigned int size;
typedef unsigned int16 u16;
typedef unsigned int8 u8;
2)typedef为自定义数据类型取“别名”
typedef struct{
menu_f btn1; // make array
menu_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!”。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。