一、测试代码
#include <stdio.h>
#include <limits.h>
int main(void)
{
char a = 2;
int i = 0;
for(i = 0; i < 4; i++)
{
a--;
printf("%d\n",a);
}
printf("CHAR_MIN = %d\n", CHAR_MIN);
return 0;
}
二、在x86 64位的ubuntu系统中运行代码

结论:可以看出 x86系统中,char 类型默认是 signed char ,范围是-128~127。
三、在ARM 64位中


结论:可以看出 ARM系统中,char 类型默认是 unsigned char ,范围是0~255。

本文通过一个简单的C语言程序演示了x86和ARM架构下char类型的默认行为差异。在x86环境下,char默认为signed char,取值范围-128到127;而在ARM64位系统中,默认为unsigned char,范围从0到255。
2307

被折叠的 条评论
为什么被折叠?



