国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

類型強轉和字節對齊

2024-06-28 13:26:07
字體:
來源:轉載
供稿:網友
類型強轉和字節對齊  當一個較少字節對齊類型的指針強轉為一個較多字節對齊的指針類型時,這樣有些時候會產生問題。  在arm的平臺上,這個問題比較明顯,在x86平臺上運行后沒這個問題typdef struct{int addr;int rdda;}Test_t;int main(){short int a;short int s[2];short int *pt = &s;Test_t tt;Test_t *pt = NULL;tt.addr= 0x11223344;memcpy(s,&tt,sizeof(Test_t)); //沒有問題,數據能正確拷貝for(a = 0; a < 2; a++)PRintf("%x",s[a]);printf("/r/n");printf("s addr %p/r/n",&s);pt = (Test_t *)buff; //這里可能會出問題printf("pt->a %x b/n",pt->a,pt->b);}在arm平臺下運行:root@hank:~#./arm-test33441122saddr0xbeb02ca2pt->a2cc83344 b11220002  可以看到memcpy拷貝的數據打印沒有問題,但是s的地址是只能被2整除,在強轉成4字節對齊的指針類型時候,出現了錯誤,可以看出是從s地址的前兩個字節地方開始讀取數據,造成結構體中的a數據出錯。  在x86平臺linux上運行:hank@hank-virtual-machine:~/project/arm$./a.out33441122saddr0xbfede93apt->a11223344,b2  在x86平臺上 s的地址也是不能被4整除,但是強轉正常  這個可能和平臺有關,在arm上做開發時,需要注意這個強轉和字節對齊的問題。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平顺县| 新乐市| 文昌市| 团风县| 新民市| 浦县| 敦煌市| 阳信县| 兴业县| 湘乡市| 新邵县| 公主岭市| 新邵县| 天津市| 武陟县| 鸡西市| 东乌珠穆沁旗| 宣威市| 沙洋县| 灌云县| 四子王旗| 阜阳市| 云南省| 南平市| 余庆县| 阳谷县| 平塘县| 寿宁县| 商河县| 泸溪县| 郓城县| 新干县| 海城市| 乐亭县| 镇赉县| 洛川县| 景洪市| 和平区| 凌海市| 青田县| 佛学|