大佬教程收集整理的这篇文章主要介绍了为什么这个If语句即使在条件为假的情况下也会执行?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include<stdio.h> int main() { // We use a trick involving exclusive-or to swap two variables #define SWAP(a,b) a ^= b; b ^= a; a ^= b; int x = 10; int y = 5; printf("%d%d\n",x,y ); if(x < 0) SWAP(x,y); printf("%d%d",y ); return 0; }
输出是:
105 515
即使条件在if(10 <0为假)中评估为假,从这个5 15即将到来的地方?
@H_696_2@
if(x < 0) SWAP(x,y);
由预处理器转换为:
if(x < 0) a ^= b; b ^= a; a ^= b; ;
这实际上与:
if(x < 0) a ^= b; b ^= a; a ^= b; ;
您可以通过将宏定义中的所有语句放入块中来解决此问题,如下所示:
#define SWAP(a,b) do { a ^= b; b ^= a; a ^= b; } while( 0 )@H_696_2@ @H_696_2@
以上是大佬教程为你收集整理的为什么这个If语句即使在条件为假的情况下也会执行?全部内容,希望文章能够帮你解决为什么这个If语句即使在条件为假的情况下也会执行?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。