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