我说的不是符号问题。
我的意思是“记得标准库函数对后面的个数是以8-bit为单位”不对。memcpy, memset, sizeof都是以char为单位。
所以你要表示一个内存单位时就应该用char。用u8或s8都不对。
例如:
char buf[sizeof(MyStruct)*10];
而不是
u8 buf[sizeof(MyStruct)*10];
【 在 feiy 的大作中提到: 】
: 对于memset/memcpy,复制的数,分辨char带不带符号,其实没多大关系,因为只是个存储而已。一个8-bit空间全是bit1,若对应的变量是s8,那就按-1理解,若对应的是u8,那就按255理解而已。
: 是不是有符号的,主要在比较等场合会有影响。会影响编译器根据其符号选择不同的比较指令或处理方式。
: 很多加减场合基本无影响(当然,有些时候可能会牵涉到溢出位数转化,具体分析吧)。
: ...................
--
FROM 114.86.93.*