Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一些函数共享我想要传递的公共参数,那么是否可以使用宏来避免重复写出公共参数?
例如,以下工作是否可行?
#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) { ... }
当然,这是合法的。-d 宏的扩展#define只不过是替换标记,忽略这些标记的含义(如果有的话)。
#define
(这是否是一个好主意取决于它的记录程度、使用的传播范围等等。)
是的,它有效。宏的工作只是STD_ARGS用arg1, int arg2, int arg3. 在编译之前。所以,这是合法的。
STD_ARGS
arg1, int arg2, int arg3