总:
01:目 > 源 多放越界 ?
02:目 < 源 少放遗漏 ?
问题一:
问题二:
分析:大端序存储顺序:高地址存储低位字节,低地址存储高位字节;小端序存储顺序:低地址存储低位字节,高地址存储高位字节。函数对4字节序的修改只会修改2个字节,在大端序cpu中修改高位字节导致错误。
强制转换灵活性/安全性总结:
1,当目的结构的空间大于源结构的空间时,考虑越界问题。
2,当目的结构的空间小于源结构的空间时,考虑字节序(大小端)问题。
3,在把某些变量或数组或结构强制转换为另一种结构体时,需要考虑字节对齐问题。
4,基本数据类型(char,int,short,long)的强制类型转换比结构体之间的强制类型转换更容易出现上诉情况。
5,不要将字符串常量强制转换为字符指针(const char * —-> char *),以免导致改写只读数据的段错误。