首先解析一下共用體與大小端模式。
在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