s8即是signed char,数据范围是-128~+127。
但是嵌入式上,编译器对于char的默认数据类型是unsigned char(不像int、long、short等不指定signed/unsigned时都默认是signed),即char a中a的范围是0-255,使用printf("%d",a);出来的数据也是0-255,不会打印负数。
所以若要打印一个s8数据类型的负数,需要显性地写signed char a = -78;此时printf("%d",a)出来的数据也会是负数了。
s8即是signed char,数据范围是-128~+127。
但是嵌入式上,编译器对于char的默认数据类型是unsigned char(不像int、long、short等不指定signed/unsigned时都默认是signed),即char a中a的范围是0-255,使用printf("%d",a);出来的数据也是0-255,不会打印负数。
所以若要打印一个s8数据类型的负数,需要显性地写signed char a = -78;此时printf("%d",a)出来的数据也会是负数了。