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;
}
相关推荐
智者很聪明9 分钟前
数据结构之栈和队列
c语言·数据结构
白太岁14 分钟前
C++:(4) 内存布局、编译流程、关键字及其链接性
c语言·汇编·jvm·c++
m0_531237171 小时前
C语言-数组练习
c语言·开发语言·算法
二年级程序员1 小时前
一篇文章掌握“双向链表”
c语言·数据结构·链表
Non importa1 小时前
二分法:算法新手第三道坎
c语言·c++·笔记·qt·学习·算法·leetcode
学编程的闹钟1 小时前
安装GmSSL3库后用VS编译CMake源码
c语言·c++·ide·开发工具·cmake·visual studio
宇木灵9 小时前
C语言基础学习-二、运算符
c语言·开发语言·学习
想放学的刺客10 小时前
整理了120道单片机嵌入式面试题与答案,覆盖了硬件电路和C语言等核心领域。
c语言·c++·stm32·单片机·嵌入式硬件·mcu·51单片机
星辰徐哥11 小时前
C语言网络编程入门:socket编程、TCP/IP协议、客户端与服务器通信的实现
c语言·网络·tcp/ip
w8x9y0z111 小时前
大小端转换的隐藏陷阱:为什么你的网络数据传输总是出错?
c语言·网络编程·大小端·数据序列化