bug-460010.c

来自「sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu」· C语言 代码 · 共 40 行

C
40
字号
/* bug 460010 */#include <testfwk.h>#ifdef SDCC#ifdef SDCC_pic16#define ADDRESS 0x0070#else#define ADDRESS 0xa000#endif  /* SDCC_pic16 */#endif  /* SDCC */void func( unsigned char a ){  UNUSED(a);}voidtestBadPromotion(void){#ifdef SDCC  unsigned char c=*((unsigned xdata char*)(ADDRESS));#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 + -
显示快捷键?