typedef void (*R_Config_DTC_Start_Ptr)(UC *, US);R_Config_DTC_Start_Ptr R_Config_DTC_Start_Func_Ptr;// 在需要调用 R_Config_DTC_Start 函数的地方,使用函数指针调用R_Config_DTC_Start_Func_Ptr(tx_buf, tx_num); 这种怎么与原函数关联?
时间: 2023-08-03 14:05:30 浏览: 90
可以通过将函数指针指向原函数的地址来建立函数指针与原函数之间的关联。具体来说,可以在程序中使用如下语句来将函数指针指向原函数:
```
R_Config_DTC_Start_Func_Ptr = &R_Config_DTC_Start;
```
这样,就可以通过函数指针 `R_Config_DTC_Start_Func_Ptr` 来调用原函数 `R_Config_DTC_Start`,例如:
```
R_Config_DTC_Start_Func_Ptr(tx_buf, tx_num);
```
这样做的好处是,通过函数指针调用函数可以提高代码的灵活性和可维护性,便于在程序运行时动态地调用不同的函数。同时,也可以方便地实现函数的替换和重载,从而实现更加复杂的功能。
相关问题
typedef void (*APP_FUNCTION)(void);
这是一个函数指针类型定义,名为APP_FUNCTION。它定义了一个指向无返回值、无参数的函数的指针类型。可以通过APP_FUNCTION类型的指针来调用相应的函数。例如:
```
void myFunc() {
printf("Hello, world!\n");
}
APP_FUNCTION ptr = myFunc; // ptr指向myFunc函数
ptr(); // 调用myFunc函数
```
这里将myFunc函数的地址赋值给了APP_FUNCTION类型的指针ptr,然后通过ptr指针调用了myFunc函数。
typedef void (*ISR_FUNC_PTR)(void);
这是一个函数指针类型的定义,名字为 ISR_FUNC_PTR,它指向一个没有参数和返回值的函数。在嵌入式系统中,常常用它来定义中断服务函数(ISR, Interrupt Service Routine)的类型。这样定义之后,就可以通过将函数指针指向具体的函数来注册中断服务函数。当中断发生时,处理器会跳转到该函数执行中断处理。
阅读全文