程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 怎樣用C語言中的共用體(union)測試系統的大小端模式

怎樣用C語言中的共用體(union)測試系統的大小端模式

編輯:關於C語言

首先解析一下共用體與大小端模式。

在C語言中,使幾個不同的變量共占同一段內存的結構,稱為“共用體”類型的結構。共用體變量所占內存長度等於最長的成員的長度。

定義共用體類型變量的一般形式為:

union 共用體名

{

成員表列

}變量表列;

大端格式中,字數據的高字節存儲在低地址中,而字數據的低字節則存放在高地址中。小端格式則與大端存儲格式相反。

union的使用受系統大小端的影響,如以下的共用體變量在大端模式與小端模式的共用體變量中的存儲格式分別如下:

union check

{

int i;

char c;

}cc;


大端模式:


int i=1;

0x00x00x00x1

低地址 高地址


小端模式:


int i=1;

0x00x00x00x1

高地址 低地址


由以上分析可以寫出以下判斷大小端模式的代碼:


#include<stdio.h>

int checkSys()

{

union check

{

int i;

char c;

}cc;

cc.i = 1;

return (cc.c == 1);

}


int main()

{

if( 0 != checkSys())

{

printf("當前所使用的系統為小端模式的系統");

}

else

{

printf("當前所使用的系統為大端模式的系統");

}

return 0;

}

本文出自 “明” 博客,請務必保留此出處http://8010089.blog.51cto.com/8000089/1304437

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