c - 是否可以在函数原型(prototype)和定义中使用宏?

标签 c function macros prototype

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

举个例子,下面的方法可行吗?

#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 宏的扩展只不过是标记的替换,忽略这些标记的含义(如果有的话)。

(这是否是一个好主意取决于它的记录情况、使用范围以及诸如此类的事情。)

关于c - 是否可以在函数原型(prototype)和定义中使用宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14421065/

相关文章:

c - 将指向结构的指针设置为等于函数返回的另一个指向结构的指针?

c++ - 在 CMake 中检查 C 程序输出

R:如何向包中添加额外的功能?

c - 宏观扩张的奇怪行为

rust - 你可以在没有语法变量的 Rust 宏中使用可选参数吗?

c - 从 stat(2) 打印信息

c - 将字符串数组的地址传递给函数

swift - 如何在 Swift 中从子类内的函数获得多个返回值

c++ - 从函数返回的变量重置为零

clojure - 为什么 clojure 线程最后一个 (->>) 是一个宏?