簡體   English   中英

C中typedef結構中的調用函數

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM