char和signed char不同编译器下的使用反思

 

遇到一个问题,在使用一个算法的时候出现了仿真正常,但是在使用时出现函数的返回数据只有正值的异常。

 

在定位算法问题的时候,由算法函数最后的返回值由后向前推,最后发现问题在与char类型的值在不同编译器下定义的问题。

 

在char、signed char、unsigned char中char相当于signed char或者unsigned char,取决于当前的编译器

其中:

signed char取值范围是 -128 到 127
unsigned char 取值范围是 0 到 255   

所以char在不同编译器下的取值范围可能时是128 到 127,也可能是0到255。

因此在不同编译器下使用char时要注意当前编译器下对char的定义。

 

posted @ 2020-09-06 19:22  丶尘丶  阅读(337)  评论(0编辑  收藏  举报