关于 char 类型的变量在 ARM 平台和 X86平台的区别

1.     ARM 平台下 char 类型的变量默认是 unsigned char, 如果把一个 char a = -1; 的话,默认的a 为无符号数,所以 此时a 的值为255。 如果 sprintf(buffer,"%3d",a); 此时为“255”。所以在ARM 平台中要想使用有符号的char 类型,必须使用 signed char

来修饰,千万不能使用 char 来作为有符号数,因为ARM 平台默认的char类型为 unsigned char。


2.     X86 平台的 char 类型的变量默认是 signed char, 如果把一个 char a = -1; 的话,默认的a 为有无符号数,所以 此时a 的值为-1。 如果 sprintf(buffer,"%3d",a); 此时为“ -1”。

猜你喜欢

转载自blog.csdn.net/rebirthme/article/details/79525593