gpt4 book ai didi

使用 __VA_ARGS__ 连接字符串

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:45 25 4
gpt4 key购买 nike

我有以下宏:

 #define MY_FCT1( id, ... )       \
FCT( id,__VA_ARGS__ ); \

我想创建一个新的来做这样的事情:

 #define MY_FCT2( id, ... )                           \
MY_FCT1( id, (" %s : ",Name())" "__VA_ARGS__); \

但我收到以下错误:

error: expression cannot be used as a function

有人知道如何解决这个问题吗?

最佳答案

目前还不清楚您要做什么。宏不能调用函数。宏可以生成包含函数调用的替换文本,但该函数直到运行时才会被调用。

要将 Name() 添加到 MY_FCT1 接收的 __VA_ARGS__ 中,只需像使用逗号的普通参数一样添加它。

 #define MY_FCT2( id, ... )                           \
MY_FCT1( id, Name(), __VA_ARGS__);

您似乎在尝试使用带引号的空格字符作为连接运算符。此运算符(仅在宏的替换文本中有效)是 ##。例如。

#define CAT(x,y) x ## y
//or
#define CAT(x,y) x##y
// ^ ^ spaces are not relevant here

关于使用 __VA_ARGS__ 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28896383/

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