C语言 判断当前存储大小端问题

1.代码1

c 复制代码
#include<stdio.h>

int check_sys(){
    int a=1;
     return *(char*)&a;
     //将int*强制转换为char* 判断一个字节的内容就知道当前存储模式
}
int main(){
    if(1==check_sys())
        printf("小端");
    else
        printf("大端");
    return 0;
}

2.代码2

使用联合体判断大小端。

char和int共用一段空间。将int赋值为1,判断char值,就相当于判断int中的第一个字节值是多少。

c 复制代码
#include<stdio.h>

int check_sys(){
 union un{
     char c;
     int  b;
 }u;
    u.b=1;
    //返回1 小端 返回0大端
    return u.c;

}
int main(){
    if(1==check_sys())
        printf("小端");
    else
        printf("大端");
    return 0;
}
相关推荐
无敌贵点大王38 分钟前
RTThread学习记录10——C语言实现面向对象的编程
c语言·stm32·学习·链表
en.en..2 小时前
TCP与UDP对比
c语言
ThornArmor3 小时前
《向内深潜,向外飞掠》
c语言·开发语言·c++·vim·visual studio
吠品3 小时前
Python 写入 Excel 的两种主流方案实际用法总结
c语言·开发语言·算法
dtq04243 小时前
数据结构 - 栈
c语言·数据结构·学习
wuminyu4 小时前
纯轻量级锁体系下C2编译器锁粗化和消除机制剖析
java·linux·c语言·jvm·c++
Navigator_Z15 小时前
LeetCode //MySQL - 1251. Average Selling Price
c语言·算法·leetcode
Escalating_xu17 小时前
【C语言数据类型和变量·上】从内置类型到变量模型:一次讲透 sizeof、signed/unsigned 与作用域
c语言
aramae17 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
多弗朗皮卡丘20 小时前
数据结构9:排序算法
c语言·数据结构·排序算法