簡體   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