[英]Can someone explain to me what this code does?
这实际上是考试中的一个问题,我不太明白 typedef 的作用,如果有人能解释一下,我将不胜感激。
typedef int (*funcptr_t)(int);
int myfoo(int i) {
printf("%d\n", i + 1);
return i;
}
funcptr_t foo(int i) {
printf("%d\n", i + 1);
return myfoo;
}
int main() {
funcptr_t fooptr = foo(0);
fooptr(10);
printf("%p %p\n", fooptr, myfoo);
return 0;
}
int (*funcptr)(int);
将把functptr
声明为一个指向一个函数的指针,该函数接受一个int
并返回int
。
typedef int (*funcptr_t)(int);
声明functptr_t
作为类型“指向函数服用int
和返回int
。
typedef 允许您使用funcptr_t foo(int i)
来声明/定义foo
而不是经典的但可以说更令人困惑:
int (*foo(int i))(int)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.