error: expected ‘)’ before numeric constant
前提
将以下语句转换成printf格式并打印
ALOGD_IF(DEBUG_V,"set %s“,buf)
转换
// 定义DEBUG_V,控制是否打印调试信息
int DEBUG_V = 1; // 设置为1以启用调试输出
#define ALOGD_IF(DEBUG_V,format, ...) \
do { \
if (DEBUG_V) { \
printf("[%s:%d] " format "\n", __func__, __LINE__, ##__VA_ARGS__); \
} \
} while (0)
报错
error: expected ‘)’ before numeric constant
解决
在format前面添加#,即
#define ALOGD_IF(DEBUG_V, format, ...) \
do { \
if (DEBUG_V) { \
printf("[%s:%d] " #format "\n", __func__, __LINE__, ##__VA_ARGS__); \
} \
} while (0)