[問題] macro的問題

看板C_and_CPP (C/C++)作者 (PS)時間14年前 (2011/08/31 20:04), 編輯推噓5(507)
留言12則, 6人參與, 最新討論串1/1
之前去面試 遇到了一題考題 寫一個macro #define FUN(X) ..... 能夠印出X的ascii code 如printf("%c \n", FUN(a)) 印出a printf(""%c \n, FUN(B)) 印出B 請問macro FUN(X)如何實作 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.98.81

08/31 20:09, , 1F
我的答案是 #define FUN(X) (#X[0])
08/31 20:09, 1F

08/31 20:25, , 2F
printf(""%c \n, FUN(B)) ....
08/31 20:25, 2F

08/31 21:15, , 3F
好想噓出這種問題來面試的人... 還有ASCII xD
08/31 21:15, 3F

08/31 21:32, , 4F
第二行是不是有問題啊,怎麼過得去..
08/31 21:32, 4F

08/31 21:34, , 5F
只考慮第一行的話 #define FUN(X) (#@X)
08/31 21:34, 5F

08/31 22:02, , 6F
百分之百你怎麼寫答案都怪怪的, %s還比較有可能印出來
08/31 22:02, 6F

08/31 22:03, , 7F
BTW, 可以順便報一下是哪間公司嗎..:P
08/31 22:03, 7F

08/31 23:30, , 8F
原來有 #@X 這個寫法...我只知道 #X 只好加個[0]湊
08/31 23:30, 8F

08/31 23:34, , 9F
LPH66 大的方法的確也很多人用.
08/31 23:34, 9F

08/31 23:59, , 10F
那個 #@ 我沒搞錯的話是 MS 限定 xD
08/31 23:59, 10F

09/01 00:08, , 11F
!! 竟沒注意到這點, 謝謝 F 大指正。
09/01 00:08, 11F

09/01 02:30, , 12F
mtk
09/01 02:30, 12F
文章代碼(AID): #1ENYDNkI (C_and_CPP)
文章代碼(AID): #1ENYDNkI (C_and_CPP)