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;
}
相关推荐
Pretend° Ω1 天前
抢占优先级 vs 响应优先级:任务调度的双刃剑
linux·c语言·抢占优先级·响应优先级
17(无规则自律)1 天前
你对 argc 和 argv 的理解有多深?
linux·c语言·嵌入式硬件·考研
小刘爱玩单片机1 天前
【stm32协议外设篇】- HX1838 红外接收头
c语言·stm32·单片机·嵌入式硬件
小刘爱玩单片机1 天前
【stm32协议外设篇】- DS18B20 单总线数字温度检测模块
c语言·stm32·单片机·嵌入式硬件
bepeater12341 天前
Laravel9.X核心特性全面解析
c语言·c++·c#·php
hope_wisdom1 天前
C/C++数据结构之用链表实现队列
c语言·数据结构·c++·链表·队列
’长谷深风‘1 天前
线程函数接口和属性
c语言·开发语言·线程·进程·软件编程
creator_Li1 天前
c语言 多文件开发
c语言
牛马大师兄1 天前
数据结构复习 | 循环链表
c语言·数据结构·c++·笔记·链表
Eternity∞1 天前
数据结构基础
c语言·开发语言·数据结构·学习·vim