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;
}
相关推荐
✎ ﹏梦醒͜ღ҉繁华落℘6 分钟前
向日葵远程控制指南
c语言
bestblueheart8 分钟前
C语言条件运算符详解:用法、求值规则及需注意的要点
c语言·条件运算符·三目运算符·ifelse·示例演示
leo_messi9410 小时前
多线程(五) -- 并发工具(二) -- J.U.C并发包(八) -- CompletableFuture组合式异步编程
android·java·c语言
jie1889457586611 小时前
c语言------
c语言·开发语言
AI+程序员在路上14 小时前
Linux C 条件变量阻塞线程用法:等待时CPU占用率为0
linux·运维·c语言
jimy114 小时前
C语言实现-----面向对象编程
c语言·数据结构
不爱吃糖的程序媛14 小时前
鸿蒙PC tiny-AES-c三方库适配实践
c语言·华为·harmonyos
HABuo14 小时前
【linux线程(三)】生产者消费者模型(条件变量阻塞队列版本、信号量环形队列版本)详细剖析
linux·运维·服务器·c语言·c++·ubuntu·centos
bestblueheart14 小时前
C语言怎么学?系统学习路线图分享
c语言·指针·计算机基础·学习路线·编程思想
RFCEO16 小时前
C语言逆向学习基础课 第1课:数组越界与指针操作基础陷阱
c语言·解引用校验·safe_free宏·悬空指针