📄 bug-905492.c
字号:
/* bug-905492.c the standard guarantees left-to-right evaluation, if the first operand is unequal 0 (resp. 0), the second isn't evaluated.*/#include <testfwk.h>char a;charinc_a(char c){ a += 1; return c;}voidtestLeftRightAndOr(void){ volatile char c; a = 0; c = inc_a(0) || inc_a(0); ASSERT(a == 2); a = 0; c = inc_a(0) || inc_a(1); ASSERT(a == 2); a = 0; c = inc_a(1) || inc_a(0); ASSERT(a == 1); a = 0; c = inc_a(1) || inc_a(1); ASSERT(a == 1); a = 0; c = inc_a(0) && inc_a(0); ASSERT(a == 1); a = 0; c = inc_a(0) && inc_a(1); ASSERT(a == 1); a = 0; c = inc_a(1) && inc_a(0); ASSERT(a == 2); a = 0; c = inc_a(1) && inc_a(1); ASSERT(a == 2);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -