程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 大小端模式對C語言的共用體結構有何影響

大小端模式對C語言的共用體結構有何影響

編輯:關於C語言

1、一些問題

問題1

#include "stdio.h"  
union   
{  
    int i;  
    char ch[2];  
}key;  
main()  
{  
    key.i=65*256+66;  
    printf("%c\t%c\n",key.ch[0],key.ch[1]);
}

答案是B      A;為什麼不是A      B呢?

在前面的文章中我們已經測試過,X86體系結構的CPU是小端模式的。比如一個數0x1234,放在內存裡按照內存地址從低往高實際上是低地址字節裡放的是0x34,高字節裡放的是0x12。小端模式和我們平時感覺上的一致,把數位數越高的部分放在地址越高的部分。union類型是共享內存的,union中是按照從低到高放的,i=0x4142,也就是低地址中放的是42,高地址中放的是41,按照ch[0],ch[1]的順序輸出就是B      A。如果是大端模式的話就是打印兩個空了,故不會出現A      B的情況。

本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved