我有一个返回整数值的函数。现在我想写一个宏来调用这个函数,获取返回值并在其前面添加一个字符串,然后返回结果字符串。
我尝试过以下代码:
这个功能非常完美。不过,我希望宏可以返回字符串PORT-x的形式,其中x是调用函数的返回值。我该怎么做?
编辑: 我也尝试将其写成多行形式:
我尝试过以下代码:
#define TEST(x) is_enabled(x)
我在主函数中调用这个宏:
int ret = 0;
ret = TEST(2);
printf("PORT-%d\n", ret);
这个功能非常完美。不过,我希望宏可以返回字符串PORT-x的形式,其中x是调用函数的返回值。我该怎么做?
编辑: 我也尝试将其写成多行形式:
#define TEST(x)\
{\
is_enabled(x);\
}
在主函数中调用它的方式如下:
printf("PORT-%d\n", TEST(2));
但是这会引起编译时错误:
error: expected expression before â{â token
sprintf
的宏来完成,但您需要分配一个缓冲区并将其传递给该宏。问题是,为什么您要这样做?因为感觉您正在以错误的方式解决某些问题。 - barak manosstrcat
?为什么需要一个宏? - Gopi