【发布时间】:2015-08-23 06:36:43
【问题描述】:
typedef 经常像这样工作:typedef <type> <type_alias>。但是函数指针的 typedef 似乎有不同的结构:typedef int (*fn)(char *, char *); - 没有类型别名,只有一个函数签名。
示例代码如下:
#include <stdio.h>
typedef void (*callback)(int);
void range(int start, int stop, callback cb) {
int i;
for (i = start; i < stop; i++) {
(*cb)(i);
}
}
void printer(int i) {
printf("%d\n", i);
}
main(int argc, int *argv[])
{
if (argc < 3) {
printf("Provide 2 arguments - start and stop!");
}
range(atoi(argv[1]), atoi(argv[2]), printer);
}
那么 - 为什么函数指针的typedefs 不同?
【问题讨论】:
-
与声明函数指针变量的方式相同。
标签: c pointers function-pointers typedef