本文共 1112 字,大约阅读时间需要 3 分钟。
我的主页:
这个.cn域名随时都可能停用,如有更新,我会说明。 我的个人站点博客: 我的简书: 我的Github地址: 欢迎相互follow~—我的主页:
这个.cn域名随时都可能停用,如有更新,我会说明。 我的个人站点博客: 我的简书: 我的Github地址: 欢迎相互follow~# C语言判断机器CPU大小端模式的两种方法本文介绍使用C语言编写程序判断机器CPU大小端模式的两种方法。
思路:利用指针的强制类型转换
#includeint main(){ int a = 0x12345678; char *p = (char *)&a;//强制转换取到a最低字节的地址 if (*p == 0x78) { //a 12 34 56 78(Hex) //*p 78 printf("little endian\n"); } else if (*p == 0x12) { //a 78 56 34 12(Hex) //*p 12 printf("big endian\n"); } return 0;}
思路:利用共用体所有数据都从同一地址开始存储。
#includeunion test_union//用于测试的共用体{ int a;//元素a,占4个字节 char b;//元素b,占1个字节,b在内存中的地址为a最低字节的地址} test;int main(){ test.a = 0x12345678; if (test.b == 0x78) { //test.a 12 34 56 78(Hex) //test.b 78 //b在内存中的地址为a最低字节的地址 printf("little endian\n"); } else if (test.b == 0x12) { //test.a 78 56 34 12(Hex) //test.b 12 //b在内存中的地址为a最低字节的地址 printf("big endian\n"); } return 0;}
转载地址:http://wnloi.baihongyu.com/