0

我想使用宏在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 并执行系统调用

4

1 回答 1

0

如果 的内容macros是固定的并且不会更改,并且您将在多个位置使用它们,那么这很好。
然而,使用宏 insnprintf可能会使命令的可读性降低,乍一看也不那么明显。

看看这里关于宏的使用。

于 2013-03-25T10:05:02.113 回答