2

我有一些函数共享我想要传递的公共参数,那么是否可以使用宏来避免重复写出公共参数?

例如,以下工作是否可行?

#define STD_ARGS arg1, int arg2, int arg3

foo(int STD_ARGS, int foo_arg1, int foo_arg2);
foo(int STD_ARGS, int foo_arg1, int foo_arg2) {
    ...
}
4

2 回答 2

2

当然,这是合法的。-d 宏的扩展#define只不过是替换标记,忽略这些标记的含义(如果有的话)。

(这是否是一个好主意取决于它的记录程度、使用的传播范围等等。)

于 2013-01-20T02:17:40.467 回答
1

是的,它有效。宏的工作只是STD_ARGSarg1, int arg2, int arg3. 在编译之前。所以,这是合法的。

于 2013-01-20T02:21:24.887 回答