【发布时间】:2014-01-22 22:45:30
【问题描述】:
在 C 中,我想创建一个如下所示的函数或宏:
void Log(char* what, ...)
其中 ... 必须是 const char* 的键值对。我真的希望不遵循此规则的代码在编译时爆炸。我尝试寻找执行此操作的 __attribute((..)) 指令,但无济于事。有什么想法吗?
【问题讨论】:
-
你不能,抱歉。另外,不要忘记您需要一种方法来表明没有更多的值对(例如,具有空标记值)。
-
最好传入一个数组或两个数组,如果你从一开始就知道你的参数需要是什么类型,那么使用可变参数函数没有任何意义。
标签: c variadic-functions variadic-macros