判断CPU是大端还是小端
#include "stdafx.h" #include <iostream> using namespace std; /* #大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。 #小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。 # #union 型数据所占的空间等于其最大的成员所占的空间。对union 型的成员的存取都是 #相对于该联合体基地址的偏移量为0 处开始,也就是联合体的访问不论对哪个变量的存取都 #是从union 的首地址位置开始。如此一解释,上面的问题是否已经有了答案呢? # */ bool little_endian(void) { union A { int i; char c; }a; a.i = 1; return (a.c==1); } int _tmain(int argc, _TCHAR* argv[]) { if (little_endian()) cout<<"little_endian"<<endl; else cout<<"big_endian"<<endl; return 0; }
Dreams are one of those things that keep you going and happy!!!