繁体   English   中英

有人可以向我解释这段代码的作用吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM