一、举例说明函数指针
#include <stdio.h>
//函数原型
void subtractAndPrint(int x, int y);
//函数实现
void subtractAndPrint(int x, int y) {
int z = x - y;
printf("Simon says, the answer is: %d\n", z);
}
//main函数调用
int main() {
void (*sapPtr)(int, int) = subtractAndPrint;
(*sapPtr)(10, 2);
sapPtr(10, 2);
}
二、使用typedef
#include <stdio.h>
//函数原型
void subtractAndPrint(int x, int y);
typedef void (*P)(int, int);
//函数实现
void subtractAndPrint(int x, int y) {
int z = x - y;
printf("Simon says, the answer is: %d\n", z);
}
//main函数调用
int main() {
P sapPtr = subtractAndPrint;
(*sapPtr)(10, 2);
sapPtr(10, 2);
}
( *( void(*)() )0 )(v); 红色部分为强制类型转换的部分,其他为调用此函数
typedef void(* addr)();
( *( add )0 )(v);