Misra 2004规则如下:
Rule 16.1: Functions shall not be defined with variable numbers of arguments
因此,像
printf
这样的函数不能与规则16.1一起使用。uint32_t debug_print(char *format, ...)
{
int int_ret_val=0;
uint32_t ret_val = ERR_NO_ERROR;
va_list arguments;
va_start(arguments, format);
ret_val = vprintf(format, arguments);
va_end(arguments);
return ret_val;
}
我已经搜索了替代方案,但没有找到任何一个。
难道所有用于记录字符串格式化消息("%d,%f
,..")的c命令家族都使用变量列表吗?