强制类型转换⭐

总:

01:目 > 源    多放越界 ⭐

02:目 < 源    少放遗漏 ⭐

问题一:

这里写图片描述

问题二:

这里写图片描述

分析:大端序存储顺序:高地址存储低位字节,低地址存储高位字节;小端序存储顺序:低地址存储低位字节,高地址存储高位字节。函数对4字节序的修改只会修改2个字节,在大端序cpu中修改高位字节导致错误。

强制转换灵活性/安全性总结:

1,当目的结构的空间大于源结构的空间时,考虑越界问题。 
2,当目的结构的空间小于源结构的空间时,考虑字节序(大小端)问题。 
3,在把某些变量或数组或结构强制转换为另一种结构体时,需要考虑字节对齐问题。 
4,基本数据类型(char,int,short,long)的强制类型转换比结构体之间的强制类型转换更容易出现上诉情况。 
5,不要将字符串常量强制转换为字符指针(const char * —-> char *),以免导致改写只读数据的段错误

posted @ 2018-03-11 18:25  瘋耔  阅读(298)  评论(0编辑  收藏  举报
跳至侧栏