【发布时间】:2014-07-20 06:19:57
【问题描述】:
假设我有一个类似的函数:
#include <stdarg.h>
#include <stdio.h>
void message (const char *fmt, ...)
{
va_list argptr;
va_start(argptr, fmt);
vprintf(fmt, argptr);
va_end(argptr);
}
我想在另一个上下文中声明一个空函数消息,以便我在没有 printf 而没有 ifdefs 的嵌入式平台上提供源级库
我知道 va_start 必须由 va_end 清理,但是如果我根本不使用那些 va_ 函数,我可以安全地假设编译器会清理堆栈吗?
会
void message (const char *fmt, ...) {
}
工作?
【问题讨论】:
-
我假设您引用了“如果我根本不使用它们”这句话。在这种情况下,这就是整个 va_* 函数
-
您可以一次编辑问题以使其易于理解吗? (我一方面认为您指的是“所有论点”;无论如何,读者不应该为了能够帮助您而猜测您的意思。)
标签: c variadic-functions