1. 程式人生 > >強制類型轉換?

強制類型轉換?

HR text sso nbsp iss 修改 log fontsize strong

總:

01:目 > 源 多放越界 ?

02:目 < 源 少放遺漏 ?

問題一:

技術分享圖片

問題二:

技術分享圖片

分析:大端序存儲順序:高地址存儲低位字節,低地址存儲高位字節;小端序存儲順序:低地址存儲低位字節,高地址存儲高位字節。函數對4字節序的修改只會修改2個字節,在大端序cpu中修改高位字節導致錯誤。

強制轉換靈活性/安全性總結:

1,當目的結構的空間大於源結構的空間時,考慮越界問題。
2,當目的結構的空間小於源結構的空間時,考慮字節序(大小端)問題。
3,在把某些變量或數組或結構強制轉換為另一種結構體時,需要考慮字節對齊問題。
4,基本數據類型(char,int,short,long)的強制類型轉換比結構體之間的強制類型轉換更容易出現上訴情況。
5,不要將字符串常量強制轉換為字符指針(const char * —-> char *),以免導致改寫只讀數據的段錯誤

強制類型轉換?