C/C++ 關於大小端模式

大端模式:  數據的高字節存在低地址  數據的低字節存在高地址spa

小端模式:  數據的高字節存在高地址  數據的低字節存在低地址.net

 

如圖,i爲int類型佔4個字節,但只有1個字節的值爲1,另外3個字節值爲0;取出低地址上的值,當其爲1時則爲小端模式,爲0時爲大端模式。code

//大小端模式的判斷
//方法一:利用聯合體全部成員的起始位置一致,
//對聯合體中的int類型賦值,而後判斷聯合體中char類型的值的大小

void SysCheck()
{
	union IsLitte_Endian
	{
		int i;
		char c;
	};
	IsLitte_Endian Check;
	Check.i = 1;
	bool Flag=Check.c == 1;	//Flag爲true表示是小端模式,Flag爲false表示爲大端模式,此時Flag爲true。
	return;
}


//方法二:利用強制類型轉換判斷
//與共用體判斷相似
bool IsLitte_Endian()

{

	int Wvar = 0x12345678;

	short *Pvar = (short*)&Wvar;

	return !(0x1234 == Pvar[0]);

}


此時說明該編譯器爲小端模式blog

CSDN地址:http://blog.csdn.net/lyl_312/article/details/51405553編譯器

相關文章
相關標籤/搜索