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;
}
相关推荐
CPUOS20103 小时前
嵌入式C语言高级编程之MVC设计模式
c语言·设计模式·mvc
jolimark3 小时前
C语言存在的问题及Zig语言如何改进,差异对比全在这
c语言·内存管理·系统编程·类型系统·zig语言
青梅橘子皮3 小时前
C语言---指针的应用以及一些面试题
c语言·开发语言·算法
零号全栈寒江独钓6 小时前
基于c/c++实现linux/windows跨平台获取ntp网络时间戳
linux·c语言·c++·windows
爱编码的小八嘎9 小时前
C语言完美演绎8-10
c语言
爱编码的小八嘎12 小时前
C语言完美演绎8-4
c语言
零号全栈寒江独钓15 小时前
基于c/c++实现linux/windows跨平台ntp时间戳服务器
linux·c语言·c++·windows
我能坚持多久16 小时前
String类常用接口的实现
c语言·开发语言·c++
CPUOS201017 小时前
嵌入式C语言高级编程之单一职责原则
c语言·开发语言·单一职责原则
Severus_black17 小时前
顺序表、单链表经典算法题分享(未完待续...)
c语言·数据结构·算法·链表