[英]call function in typedef struct in C
我在這里找到了類似的答案。 但這並沒有達到我的預期。 所以我有
void funcA(void) {
// do sth.
}
void funcB(void) {
// do sth.
}
typedef struct tasks {
int val;
void (*Start)(void);
} tasks;
和
const tasks tasklist[] =
{
{0, funcA},
{3, funcB}
};
for (i=0; i < task_cnt; i++ )
if (tasklist[i].val == 3)
tasklist[i]->Start();
但是在“ ...-> Start();”處 編譯器說“表達式必須具有指針類型”。
有任何想法嗎? 謝謝
您必須使用tasklist[i].Start(
)而不是tasklist[i]->Start()
這是由於以下事實: ab用於訪問對象a的成員b,而a-> b訪問a指向的對象的成員b。
你可以在這里有完整的解釋
您以與訪問val
相同的方式訪問Start
但帶有一個點: tasklist[i].Start()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.