gpt4 book ai didi

C程序语法 "({statement;});"被keil报错

转载 作者:行者123 更新时间:2023-12-04 11:47:43 24 4
gpt4 key购买 nike

我想定义一个格式的宏

#define SUM(x,y) ({log_var = x; log_var += y;})

void main(void)
{
unsigned int log_var;
SUM(10,20);
}

ARMCC 对其进行编译会抛出错误“Expected an expression”,但使用 GCC 进行编译不会抛出错误。

语法是({<statements>});吗在 ARMCC 中是不允许的,还是有任何其他原因?

去掉括号后同样消失。即{<statements>}

最佳答案

如果你想有一个多语句的宏体,通常的方法是有一个单次迭代的do while循环:

#define SUM(x,y) do {log_var = x; log_var += y;} while (0)

关于C程序语法 "({statement;});"被keil报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500786/

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