我有几个函数要共享我想要传递的常用参数,那么是否可以使用宏来避免我重复写出常用参数?是否可以在函数原型和定义中使用宏?
作为一个例子,下面的工作会是什么?
#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) {
...
}
我有几个函数要共享我想要传递的常用参数,那么是否可以使用宏来避免我重复写出常用参数?是否可以在函数原型和定义中使用宏?
作为一个例子,下面的工作会是什么?
#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) {
...
}
当然,这是合法的。 #define
-d宏的扩展只不过是代用符号的替代,忽略了这些代币的含义(如果有的话)。
(这是否是一个好主意或不取决于它如何有据可查的,在多大程度上使用利差,以及诸如此类的东西。)
是它的工作原理。 宏的工作正是它取代STD_ARGS
与arg1, int arg2, int arg3
。编辑前的 。所以,这是合法的。
更好地将'int'吸收到你的'STD_ARGS'中,以免后来有人错误地指出'STD_ARGS'命名为_one_参数。如果你绝对必须这样做。在你的编辑器中复制和粘贴不能太昂贵... – vonbrand