#include<stdio.h>
#include<errno.h>
#include<error.h>
#include<stdlib.h>
#define clean_errno() (errno == 0 ? "None" : strerror(errno))
#define DEBUG_ERROR(M,...) fprintf(stderr, "[ERROR] (%s:%d: (error: %s)) M \n", __FILE__, __LINE__, clean_errno(),##__VA_ARGS__)
int main()
{
int test =10;
DEBUG_ERROR("Test variable %s = %d.\n","test",test);
return 0;
}
Any ideas on how to fix the following warning with the debug macro...
有关如何使用调试宏修复以下警告的任何想法...
warn.c:12:4: warning: too many arguments for format [-Wformat-extra-args]
warn.c:12:4:警告:格式的参数太多[-Wformat-extra-args]
1 个解决方案
#1
3
Your macro should be:
你的宏应该是:
#define DEBUG_ERROR(M,...) fprintf(stderr, "[ERROR] (%s:%d: (error: %s)) " M " \n", __FILE__, __LINE__, clean_errno(),##__VA_ARGS__)
Note that M
is not in quotes now.
请注意,M现在不在引号中。
#1
3
Your macro should be:
你的宏应该是:
#define DEBUG_ERROR(M,...) fprintf(stderr, "[ERROR] (%s:%d: (error: %s)) " M " \n", __FILE__, __LINE__, clean_errno(),##__VA_ARGS__)
Note that M
is not in quotes now.
请注意,M现在不在引号中。