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;
}
相关推荐
进击的小头1 小时前
为什么C语言也需要设计模式
c语言·开发语言·设计模式
啟明起鸣1 小时前
【Linux 项目管理工具】GDB 调试是现成 C/C++ 项目的 “造影剂”,用来分析项目的架构原理
linux·c语言·c++
跃渊Yuey2 小时前
【Linux】Linux进程信号产生和保存
linux·c语言·c++·vscode
leaves falling2 小时前
c语言自定义类型深度解析:联合(Union)与枚举(Enum)
c语言·开发语言·算法
leiming62 小时前
手写Linux C UDP通信
linux·c语言·udp
水饺编程3 小时前
第4章,[标签 Win32] :绘制信息结构
c语言·c++·windows·visual studio
ElfBoard4 小时前
ElfBoard技术贴|如何在ELF-RK3506开发板上构建AI编程环境
c语言·开发语言·单片机·嵌入式硬件·智能路由器·ai编程·嵌入式开发
枫叶丹44 小时前
【Qt开发】Qt系统(八)-> Qt UDP Socket
c语言·开发语言·c++·qt·udp
程序猿编码4 小时前
无状态TCP技术:DNS代理的轻量级实现逻辑与核心原理(C/C++代码实现)
c语言·网络·c++·tcp/ip·dns
Vallelonga4 小时前
Rust 中 extern “C“ 关键字
c语言·开发语言·rust