看板 Soft_Job 關於我們 聯絡資訊
※ 引述《hanck ( )》之銘言: : 今兒個去MTK面試寫考卷看到兩題題目想跟大家請教一下 : 1. : extern void func1(void); : extern void func2(void); : extern void func3(void); : extern void func4(void); : extern void func5(void); : void main(int n) : { : if n==1 execute func1; : if n==2 execute func2; : if n==3 execute func3; : if n==4 execute func4; : if n==5 execute func5; : } : 保證 n 一定是上面五個數字之一 第一題有想到妖道一點的做法 #define _FUN(X) func##X() #define FUN(s) _FUN(s) void main(int n) { FUN(n); } 不過這招要Preprocessor有支援將n解析回int才行 這招我用dev-c++就跑不過了 一定要用FUN(1)去強制指定才行 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.123.162.35 ※ 編輯: del680202 來自: 122.123.162.35 (06/12 14:53)
bobhsiao:這不行吧...n 不是在 compile 時期決定的 06/12 14:53
loveflames:第一題不能這樣做,n是runtime取值,跟預處理是不同的 06/12 14:58
loveflames:即使是compile時期決定也不行,因為預處理比編譯更早 06/12 15:01
試了一下 的確不行 ※ 編輯: del680202 來自: 122.123.162.35 (06/12 15:13)