[討論] 多行#define的用法

看板C_and_CPP作者 (懂得放手..才是王道)時間9年前 (2016/04/01 16:47), 編輯推噓0(0014)
留言14則, 3人參與, 最新討論串1/2 (看更多)
大家好, 我有一個問題關於#define想提出來跟大家請教, #define使用上可以是單行或是多行, 在多行的#define上只要在行尾加上反斜線\就可以了, Ex: #define ABC AAA,\ BBB,\ CCC 如果想要在多行的#define上加入注觸或#if等敍述, 似乎會有問題.. Ex: #define ABC AAA,\ /*comment*/ #if SUPPORT_BBB BBB,\ #endif CCC 請教大家, 有什麼方法可以做到加注解或#if在多行#define呢? 目前知道的是, 把注解放前面是可行的, Ex: #define ABC /*comment*/AAA,\ /*comment*/CCC 謝謝大家.. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.191.71 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1459500426.A.733.html

04/01 16:52, , 1F
#if請放在#define外面 你會把外褲穿在內褲裡面嗎
04/01 16:52, 1F

04/01 16:53, , 2F
同是preproc dir還想包到#define裡面 不會太有創意嗎
04/01 16:53, 2F

04/01 17:54, , 3F
第一個問題也是 \其實是C的「續行」
04/01 17:54, 3F

04/01 17:55, , 4F
看起來好像用 \ 可以一直寫多行macro 其實是接成一行
04/01 17:55, 4F

04/01 17:56, , 5F
但我需要#define一個很大的資料串, 又要能根據#if來增減
04/01 17:56, 5F

04/01 17:57, , 6F
有什麼方法可以實現這種做法嗎?
04/01 17:57, 6F

04/01 17:58, , 7F
\ 右邊本來就不准寫東西
04/01 17:58, 7F

04/01 18:04, , 8F
資料很多用fopen讀進來不就結了
04/01 18:04, 8F

04/01 18:05, , 9F
要增要減讀多少 用命令列參數控制
04/01 18:05, 9F

04/01 18:06, , 10F
資料量改變就要重新compile 這樣是有哪裡好了
04/01 18:06, 10F

04/01 18:15, , 11F
覺得跟我想做的有點像 #1Mya385w (C_and_CPP) XD
04/01 18:15, 11F

04/01 18:15, , 12F
我指的是語法的部份
04/01 18:15, 12F

04/02 09:43, , 13F
N大,謝謝你的建議,資料改變要重新compile確實是一個問
04/02 09:43, 13F

04/02 09:43, , 14F
題,我再想想怎修正這個問題,
04/02 09:43, 14F
文章代碼(AID): #1M_ZMASp (C_and_CPP)
文章代碼(AID): #1M_ZMASp (C_and_CPP)