利用function pointer array索引函式@ 大家一起學AI - 痞客邦

文章推薦指數: 80 %
投票人數:10人

利用function pointer array索引函式 · 題目:實現下面程式碼,且保證n一定是上面五個數字之一,不能用if和switch case,請用你認為最快的方法實作main。

大家一起學AI 跳到主文 研究人工智慧相關,將自己研究過程做筆記,希望能夠一起交流、學習!!! 部落格全站分類:數位生活 相簿 部落格 留言 名片 Jan24Thu201909:08 利用functionpointerarray索引函式 前天在網路上看到某面試考題,看到不能使用If和Switch條件式去進行函式呼叫,頓時不知所措,因此花了一點時間解決此問題,原來是要使用Functionpointerarray實現,透過陣列索引的方式呼叫不同函式。

題目:實現下面程式碼,且保證n一定是上面五個數字之一,不能用if和switchcase,請用你認為最快的方法實作main。

externvoidfunc1(void); externvoidfunc2(void); externvoidfunc3(void); externvoidfunc4(void); externvoidfunc5(void); voidmain(intn) {    ifn==1executefunc1;    ifn==2executefunc2;    ifn==3executefunc3;    ifn==4executefunc4;    ifn==5executefunc5; } 解析: 宣告一個functionpointer變數,以便於指向函式。

此範例函數型態為: voidfunc1(void) 因此宣告functionpointer為: void(*fptr)(void); (最前面的型態是變數datatype(資料型態),和指向的函式回傳值型態相同,第一個小括號代表指標變數名稱,第二個小括號代表傳入的parameter資料型態) 要將所有函式放進此陣列中,所以要宣告為陣列形式:  void(*fptr[5])(void); 實際實現程式碼如下所示。

實作程式碼 #include"stdafx.h" #include"stdlib.h" voidfunc1(void){printf("1\n");}; voidfunc2(void){printf("2\n");}; voidfunc3(void){printf("3\n");}; voidfunc4(void){printf("4\n");}; voidfunc5(void){printf("5\n");}; intmain() {    intn;    while(1)    {       printf("input:");       scanf_s("%d",&n);       void(*fptr[5])(void);       fptr[0]=func1;       fptr[1]=func2;       fptr[2]=func3;       fptr[3]=func4;       fptr[4]=func5;       if(n>5)          break;       fptr[(n-1)]();    }    printf("finish");    system("pause");    return0; }   文章標籤 函式指標 functionpointerarray 取代條件式 面試考題 MKT 全站熱搜 創作者介紹 水面上的小草 大家一起學AI 水面上的小草發表在痞客邦留言(0)人氣() E-mail轉寄 全站分類:數位生活個人分類:C語言上一篇:ActivityNet動作辨識競賽介紹 下一篇:深度學習激勵函數介紹 ▲top 留言列表 發表留言 月曆 « 六月2022 » 日 一 二 三 四 五 六       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30     熱門文章 站方公告 [公告]2022年度農曆春節期間服務公告[公告]MIB廣告分潤計劃、PIXwallet錢包帳戶條款異動通知[公告]2021年度農曆春節期間服務公告 活動快報 達特蕾蒂易肽纖 小心!糖糖危機來襲!Dr.Lady的享甜0負擔魔法【易肽... 看更多活動好康 我的好友 文章分類 Leetcode(9)C語言(1)Python(5)Matlab(1)OpenCV(2)AI(4)CUDA版本切換(1)Caffe(1)Tensorflow(4)未分類文章(1) 最新文章 最新留言 誰來我家 參觀人氣 本日人氣: 累積人氣: 文章精選 文章精選 2019五月(1) 2019四月(4) 2019三月(10) 2019二月(1) 2019一月(5) 2018六月(1) 2018五月(7) 所有文章列表 文章搜尋 QRCode POWEREDBY (登入) 回到頁首 回到主文 免費註冊 客服中心 痞客邦首頁 ©2003-2022PIXNET 關閉視窗



請為這篇文章評分?