gpt4 book ai didi

c++ - 如何在 C/C++ 中包含宏的行的末尾添加语句?

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:21 24 4
gpt4 key购买 nike

为了减少要写入的行数,我按以下方式使用宏:

#define FUNC(a, b)  func(a, b, threadId, sizeof(a)); \
do something 1; \
do something 2;

这很好用,因为我只需要使用编码函数调用(带有 4 个参数)和 2 个或更多其他语句的宏(带有 2 个参数)。

当此函数调用是另一个函数的参数时,就会出现问题。例如,假设我需要以下代码:

func1(par1, func(a, b, c, d));
do something 1;
do something 2;

有没有办法使用宏或任何其他替代方法来实现这一点?即我期待这样的事情:

func1(par1, FUNC(a, b)); //This statement(using macros) should transform into the above code after the preprocessing step. 

最佳答案

我不确定您实际上想要达到什么目的,但替换为:

#define FUNC(a, b)  func(a, b, threadId, sizeof(a)); \
do something 1; \
do something 2;

通过这个(假设ab参数的类型是int):

int FUNC(int a, int b)
{
int returnvalue = func(a,b,threadId, sizeof(a));
do something 1;
do something 2;
return returnvalue;
}

应该完成这项工作。

关于c++ - 如何在 C/C++ 中包含宏的行的末尾添加语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40465959/

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