[討論] 多行#define的用法

作者: MaxHaru (懂得放手..才是王道)   2016-04-01 16:47:03
大家好,
我有一個問題關於#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
謝謝大家..
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-04-01 16:52:00
#if請放在#define外面 你會把外褲穿在內褲裡面嗎同是preproc dir還想包到#define裡面 不會太有創意嗎第一個問題也是 \其實是C的「續行」看起來好像用 \ 可以一直寫多行macro 其實是接成一行
作者: MaxHaru (懂得放手..才是王道)   2016-04-01 17:56:00
但我需要#define一個很大的資料串, 又要能根據#if來增減有什麼方法可以實現這種做法嗎?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-04-01 17:58:00
\ 右邊本來就不准寫東西資料很多用fopen讀進來不就結了要增要減讀多少 用命令列參數控制資料量改變就要重新compile 這樣是有哪裡好了
作者: james732 (好人超)   2016-04-01 18:15:00
覺得跟我想做的有點像 #1Mya385w (C_and_CPP) XD我指的是語法的部份
作者: MaxHaru (懂得放手..才是王道)   2016-04-02 09:43:00
N大,謝謝你的建議,資料改變要重新compile確實是一個問題,我再想想怎修正這個問題,

Links booklink

Contact Us: admin [ a t ] ucptt.com