先放代码:
int check() { union { unsigned int a; unsigned char b; }c; c.a = 1; return 1 == c.b; }
再说原理:
上述程序,假设返回值为1则是小端,假设是0则大端。由于union类型共用一段内存,所以c占4个字节(假设是32位机器),把1赋给a。假设是小端则1会存放在低位,则取出b也是1,反之若是大端则1存放在高位,b即为0.
先放代码:
int check() { union { unsigned int a; unsigned char b; }c; c.a = 1; return 1 == c.b; }
上述程序,假设返回值为1则是小端,假设是0则大端。由于union类型共用一段内存,所以c占4个字节(假设是32位机器),把1赋给a。假设是小端则1会存放在低位,则取出b也是1,反之若是大端则1存放在高位,b即为0.
//大小端测试程序#include <stdio.h>#include <stdlib.h>void checkCPUendian();int main(
概念大端格式:
大小端
大端模式:高地址的低字节存储,低地址存放高字节。小端模式:高高字节地址存储,低地址低字节。#include//终端模式
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M