2013-03-25 39 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

相关问题