singned char是有符号字符型吧,范围应该是-127~127。怎么会是long呢?
long int 和char在51是可以用的,楼主请注意,数据类型只和编译器有关,基本上和单片机没有关系,只不过了解了单片机的位宽,可以有助于提高程序的效率。
如51是八位单片机,在做unsigned long 符号处理时,需要分为八位一个步骤处理四次。
而STM32是32位单片机,在处理unsigned long 时不需要分开处理。
另一个,STM32存在访问对齐,8位的数据存储占用的内存并不一定是8位,使用C语言编程时这些操作都由编译器自动处理,楼主可以使用联合体来验证。