gpt4 book ai didi

c - 在 C 中使用宏作为函数

转载 作者:行者123 更新时间:2023-11-30 18:26:40 25 4
gpt4 key购买 nike

我想输入一个宏来进行按位计算并交换两个变量

我决定使用宏,而不是在程序中一次又一次地输入该代码

#define swapVars(p,a,b) {p=a^b;a=^p;b=^p;}

当我在代码中使用宏时

int a = 10, b=19;
int swap_dummy = 0; //May contain anything
swapVars(swap_dummy, a, b);
printf("a = %d | b = %d", a, b);

我在替换时遇到错误。是不是宏定义错了? (顺便说一句,应该是这样)。对于这种情况,正确的宏是什么?

最佳答案

=^ 无效,您需要 ^= 代替。尽管尚不清楚为什么在正常分配可以正常工作时使用按位异或。

但请真正查看对您的问题的评论,了解为什么这根本不应该是宏。

关于c - 在 C 中使用宏作为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14918164/

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