IAR STM8S 函数参数为unsigned char 或 signed char 运行错误

2019-07-19 20:45发布

在IAR STM8 环境下, MCU是 STM8S208MB

[mw_shl_code=c,true]
s8 add_test(s8 a, s8 b)
{
      s8 ret = 0;
   
      ret = a + b;
   
      return ret;
}


int main(void)
{
    ...

    if(  add_test(2, 3 ) == 5 )
    {
        LOG("add_test  ok");
    }

    ...
}
[/mw_shl_code]

调试发现:如果参数的数据类型是int,就正常;
如果参数的数据类型是 unsigned char 或 signed char
参数的值就不正确,赋值时a=2, b=3, 进入函数后: a=0x2c, b=0x00


这是为什么啊? 哪位大神指点下迷津?


0条回答

一周热门 更多>