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;
}
相关推荐
gugucoding12 小时前
21. 【C语言】打包不同类型:结构体
c语言·开发语言
gugucoding13 小时前
31. 【C语言】堆栈与队列的实现
c语言·开发语言·数据结构·链表
Yang_jie_0316 小时前
笔记:数据结构(C语言版)第一章知识点详细归纳
c语言·数据结构·算法
czhaii17 小时前
串口1中断收发-C语言-MODBUS协议
c语言·开发语言
apihz18 小时前
随机驾考题目(C 照科一 / 科四 2000+ 题)免费API调用教程
android·java·c语言·开发语言·网络协议·tcp/ip
三十岁老牛再出发20 小时前
07.07.每日总结
c语言·windows·python
C++ 老炮儿的技术栈1 天前
MFC 自定义纯色居中文字进度条控件
c语言·数据库·c++·windows·算法·c·visual studio
gugucoding1 天前
34. 【C语言】性能优化意识启蒙
c语言·开发语言·性能优化
Drone_xjw1 天前
从 GDB 到 CDB:C/C++ 程序调试的两把“手术刀”
c语言·开发语言·c++
gugucoding2 天前
25. 【C语言】二进制文件与随机读写
c语言·开发语言