bug-460010.c

来自「Small Device C Compiler 面向Inter8051」· C语言 代码 · 共 38 行

C
38
字号
/* bug 460010 */#include <testfwk.h>#if defined __mcs51 || defined __ds390 || defined __xa51#define XDATA xdata#else#define XDATA#endifvoid func( unsigned char a ){  UNUSED(a);}voidtestBadPromotion(void){#ifdef SDCC  unsigned char c=*((unsigned XDATA char*)(0xa000));#else  unsigned char loc_c;  unsigned char c=*(unsigned char*)&loc_c;#endif     func(c);     c+='0'; /* is evaluated as an 8-bit expr */     func(c);   c+='A'-'0'; /* is a 16-bit expr ??? */     func(c); }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?