gpt4 book ai didi

C 调试宏 : error: expected expression

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:51 26 4
gpt4 key购买 nike

<分区>

每次我调用下面的 C 调试宏时,我都必须传递一些参数。否则编译失败。

#include <stdio.h>
#include <stdlib.h>

#define debug(fmt, ...)\
do{\
fprintf(stdout, "%s(%d) : " fmt, __FUNCTION__, __LINE__, __VA_ARGS__);\
}while(0)

int
main()
{
debug("Debug 1");
}

这是编译错误:

test.c:12:5: error: expected expression debug("Debug 1"); ^ test.c:6:70: note: expanded from macro 'debug' fprintf(stdout, "%s(%d) : " fmt, FUNCTION, LINE, VA_ARGS);\ ^ 1 error generated.

如果我用参数调用同一个宏:

debug("Debug 1 %s", "");

编译没有问题。是因为编译器?它适用于最新的编译器吗?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com