【答疑解惑】如何确定当前系统的大小端?

上周写过一个什么是大小端的答疑解惑,今天接着说如何使用C语言来确定当前系统的大小端,下面介绍两种有效的方法。

方法1:利用union类型 —— 可以利用union类型数据的特点:所有成员的起始地址一致。

#include <cstdio>

int checkSystem()

{

union check

{

int i;

char ch;

}c;

c.i=1;

return (c.ch==1);

}

int main()

{

checkSystem()==1 ? printf("Little-endian/n") : printf("Big-endian/n");

return 0;

}

方法2:对int强制类型转换

#include<stdio.h>

#include<stdlib.h>

int main()

{

int i = 1;

(*(char *)&i == 1) ? printf("Little-endian/n") : printf("Big-endian/n");

system("pause");

return 0;

}

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-08-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏deepcc

javascript 中的 delete

3518
来自专栏老九学堂

每日一练(变量)

习题 1.打印一句你喜欢的话到屏幕上 2.定义一个整形变量,赋值为10,打印这个整形变量的值 3.输入一个整形变量a,字符变量b,双精度变量c,把值显示在屏幕上...

3548
来自专栏刘望舒

设计模式(九)模版方法模式

1.模版方法模式简介 模版方法模式介绍 在软件开发中,有时会遇到类似的情况,某个方法的实现需要多个步骤,其中有些步骤是固定的,而有些步骤并不固定,存在可变性。为...

1936
来自专栏xingoo, 一个梦想做发明家的程序员

MFC中注释含义

下面是 CStdioFile 类的部分列表,其中使用了 MFC 在其类中按类成员的用法划分它们时所采用的大多数标准注释: class CStdioFile :...

1907
来自专栏chafezhou

fire让命令行接口更简单

1185
来自专栏Echo is learning

字符、字符集、编码,以及它们python中会遇到的一些问题(上)

1837
来自专栏Java爬坑系列

【Java入门提高篇】Day17 Java异常处理(下)

  今天继续讲解java中的异常处理机制,主要介绍Exception家族的主要成员,自定义异常,以及异常处理的正确姿势。

35115
来自专栏好好学java的技术栈

一文看透java8新特性

毫无疑问,Java 8发行版是自Java 5(发行于2004,已经过了相当一段时间了)以来最具革命性的版本。Java 8 为Java语言、编译器、类库、开发工具...

1032
来自专栏Java爬坑系列

【Java入门提高篇】Day17 Java异常处理(下)

1273
来自专栏Java帮帮-微信公众号-技术文章全总结

Java 8 Lambda函数编程【面试+工作】

链接:https://pan.baidu.com/s/1q_S2URG8mWKI1nTvPVvDzg 密码:2als

1633

扫码关注云+社区