国产探花免费观看_亚洲丰满少妇自慰呻吟_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上做開發時,需要注意這個強轉和字節對齊的問題。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖江市| 交城县| 兴文县| 岳西县| 内黄县| 南平市| 侯马市| 来凤县| 基隆市| 漠河县| 尼木县| 通海县| 南和县| 铁力市| 东山县| 健康| 平凉市| 光泽县| 乌审旗| 思茅市| 新民市| 乌鲁木齐县| 仙居县| 和平区| 平和县| 涟源市| 和顺县| 阳春市| 西畴县| 织金县| 香港| 仁怀市| 浮山县| 西青区| 焉耆| 疏附县| 桐柏县| 门源| 日照市| 云龙县| 兴安县|