ast_constant_folding.c
来自「Small Device C Compiler 面向Inter8051」· C语言 代码 · 共 80 行
C
80 行
/* Test ast_constant_folding() in SDCCast.c */#include <testfwk.h>volatile unsigned i;unsignedfoo_aa (void){ return i + 5 + i - i + 12;}unsignedfoo_asr (void){ return i - 5 + i + i + 12;}unsignedfoo_asl (void){ return 5 - i + i + 12;}unsignedfoo_ssr (void){ return i - 5 - i - i - 12;}unsignedfoo_ssl (void){ return 5 - i - i - 12;}unsignedfoo_sa (void){ return i + 5 - i - i - 12;}unsignedfoo_mul (void){ return 5 * i * i * 12;}unsignedfoo_div (void){ return 33971u / i / 5 / i / i / 12;}unsignedfoo_or (void){ return 5 | i | i | 12;}unsignedfoo_and (void){ return 5 & i & i & 12;}voidtest_ast_cf(void){ i = 30; ASSERT(foo_aa () == 47); ASSERT(foo_asr() == 97); ASSERT(foo_asl() == 17); ASSERT(foo_ssr() == -47); ASSERT(foo_ssl() == -67); ASSERT(foo_sa () == -37); ASSERT(foo_mul() == 54000); i = 3; ASSERT(foo_div() == 20); i = 3; ASSERT(foo_or () == 15); i = 7; ASSERT(foo_and() == 4);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?