是否可以在函数原型和定义中使用宏?

时间:2013-01-20 02:15:29

标签: c function macros prototype

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

举个例子,以下是否有效?

#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) {
    ...
}

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

是的,它有效。 宏的工作就是用STD_ARGS替换arg1, int arg2, int arg3。 在称赞之前。所以,这是合法的。