typedef定义函数类型定义函数指针类型
今天碰到这个问题感觉很不错。先记录一下以后再看。typedef void sigfunc_rt(int, siginfo_t *, void *);在我常规理解里一般定义一个函数类型都是这样定义的typedef void (*sighandler_t)(int);其实对于函数typedef有两类自定义类型首先我们要先明白一个概念函数名是不是指针也就是说一个函数名可不可以代表一个地址以及什么是函数类型经过查找函数名就是一个指针但是意义是不一样的如同于数组a[]a和a其实都是一样的。当调用一个函数时我们都是直接用函数名调用或者说通过指针调用。函数类型在我理解就是定义了一个函数返回值类型以及参数类型。那么1.tpyedef自定义函数指针类型#include stdio.h typedef int (*fp_t)(char c); int f0(char c) { printf(f0, c %c\n, c); return 0;} int f1(char c) { printf(f1, c %c\n, c); return 1;} int main() { int ret; fp_t fp; fp f0; ret fp(a); fp f1; ret fp(x); return 0; }运行结果f0, c af1, c x2.typedef自定义函数类型#include stdio.h typedef int fp_t(char c); int f0(char c) { printf(f0, c %c\n, c); return 0;} int f1(char c) { printf(f1, c %c\n, c); return 1;} int main() { int ret; fp_t* fp; fp f0; ret fp(a); fp f1; ret fp(x); return 0; }运行结果f0, c af1, c x