typedef
typedef
是C语言中的一个关键字,它的主要作用是创建类型别名。是 type definition(类型定义)的缩写。目的是更清晰地表示数据类型,提高代码的可读性和可维护性。
1)基本语法
typedef
的基本语法如下:
typedef existing_type new_type;
这里 existing_type
是已存在的数据类型,而 new_type
则是你为这个已存在类型创建的别名。
2)基本类型别名
使用 typedef
可以为基本数据类型创建别名,使得代码更易读:
typedef int MyInteger; // 将 int 类型创建别名为 MyInteger
这样,你就可以使用 MyInteger
代替 int
:
MyInteger num = 42;
3)结构体类型别名
在结构体的定义中,typedef
可以用于为结构体类型创建别名:
typedef struct {
int age;
char name[50];
} Person;
这里,Person
就是结构体类型的别名,你可以使用 Person
来声明结构体变量:
Person student1;
4)枚举类型别名
同样,typedef
也可以用于为枚举类型创建别名:
typedef enum {
RED,
GREEN,
BLUE
} Color;
这里,Color
就是枚举类型的别名,你可以使用 Color
来声明枚举变量:
Color favoriteColor = BLUE;
5)函数指针类型别名(常用)
前置知识:函数指针相关知识(指向函数的指针)。
typedef
还可以用于为函数指针创建别名,提高代码的可读性:
typedef int (*Operation)(int, int);
具体解释:
-
typedef
: 创建类型别名。 -
int (*Operation)(int, int)
: 定义一个函数指针。(函数指针:指向函数的指针) - 整个语句的意思是,
Operation
是一个函数指针类型的别名,它可以指向返回类型为int
,接受两个int
类型参数的函数。
你可以使用 Operation
来声明相应的函数指针变量:
typedef int (*Operation)(int, int); //给函数指针起新名字
int add(int a, int b) {
return a + b;
}
Operation operationPtr = add; //实例一个函数指针,并赋值,让其指向某一个函数
复杂一点的例子:
typedef int (*Operation)(int, int); //给函数指针起一个别名,叫 Operation
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
void processNumbers(int x, int y, Operation operation) { //入口参数是一个函数指针
int result = operation(x, y);
printf("Result: %d\n", result);
}
int main() {
Operation addPtr = add; // 声明并赋值函数指针
processNumbers(4, 5, addPtr); // 通过函数指针调用函数
return 0;
}
这个例子包括了函数指针的声明、赋值、传递,以及通过函数指针调用函数等方面。
6)以FreeRTOS代码为例
typedef void (*TaskFunction_t)( void * ); // 给函数指针类型起新名字,叫TaskFunction_t
BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 用新名字定义形参,看起来会更简洁。
const char * const pcName,
const configSTACK_DEPTH_TYPE usStackDepth,
void * const pvParameters,
UBaseType_t uxPriority,
TaskHandle_t * const pxCreatedTask );
第一行,用 typedef
给函数指针类型起了新名字
第三行,形参1,使用了新类型名定义形参,看起来会更简洁明了。实质形参1 就是一个函数指针,使用时该位置就应该填入一个函数名,而该函数的定义应该满足void xxxx( void * );
这样的格式,输入参数是一个void指针,返回值是void。
7)总结
通过使用 typedef
,可以增强代码的可读性,使得数据类型的含义更加清晰。特别是在处理复杂的数据结构、函数指针等场景时,typedef
能够简化代码,使其更易理解。文章来源:https://www.toymoban.com/news/detail-818516.html
总体来说,typedef
是一个在C语言中用于创建类型别名的强大工具,通过它,你可以提高代码的可维护性和可读性,使代码更容易理解。文章来源地址https://www.toymoban.com/news/detail-818516.html
到了这里,关于【C】typedef 关键字 typedef int (*Operation)(int, int);的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!