2013-03-25 40 views
0

我想用宏Concat的在C幾串,我所做的是:有什麼更好的方式來Concat的幾串用C

#define PROCESS_NAME   "process_a" 

#ifdef WITH_PID_FILE 
#define PROCESS_PID   "-p /tmp/process_a.pid" 
#else 
#define PROCESS_PID   "" 
#endif 

#define PROCESS_CMD   PROCESS_NAME" -i %s -a %s "PROCESS_PID" &" 

,但它看起來非常可怕,有沒有更好的辦法?

我的目標是在snprintf的使用PROCESS_CMD和執行系統調用

+0

這產生''process_a「」-i%s -a%s「」-p /tmp/process_a.pid「」&「'。你真的需要'''標記嗎? – Dipto 2013-03-25 11:47:26

+0

@Dipto:在預處理器組合了相鄰的字符串文字後,它變成'「process_a -i%s -a%s -p /tmp/process_a.pid&」'看起來像是對我。 – 2014-05-02 21:27:46

回答

0

如果macros的內容是固定的,不會改變,你會在幾個地方使用他們,那麼,這是好的。
但是,使用snprintf中的宏可能會使命令乍看起來不易讀,不太明顯。

看看關於宏的用法here

相關問題