請問如何把多個涵式利用typef宣告成一個陣列,在利用代入的值開啟其對應的涵式 |
答題得分者是:taishyang
|
vk8051
一般會員 發表:22 回覆:33 積分:21 註冊:2007-08-10 發送簡訊給我 |
煩請各位大大~撥空解答一下~我那邊寫錯了
void case1_fun (void); void case2_fun (void); typedef void *keyfun (void); keyfun_array[]={ &case1_fun, &case2_fun }; unsigned char key_data; bit flag; void main (void) { while(1) { key_data ; keyfun_array[key_data]; //<--這邊我不了解怎麼把宣告的呼叫出來 } } void case1_fun (void) { //涵式1 } void case2_fun (void) { //涵式2 }
------
vincent |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
試試下面的code
void case1_fun(void); void case2_fun(void); typedef void (*keyfun)(void); keyfun function_array[]={case1_fun, case2_fun}; unsigned char key_data; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void case1_fun (void) { ShowMessage("涵式1"); } //--------------------------------------------------------------------------- void case2_fun (void) { ShowMessage("涵式2"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int nfunctionCnt = sizeof(function_array)/sizeof(function_array[0]); for (int i=0; i < nfunctionCnt; i ) { function_array[i](); } } |
vk8051
一般會員 發表:22 回覆:33 積分:21 註冊:2007-08-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |