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

上周写过一个什么是大小端的答疑解惑,今天接着说如何使用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 条评论
登录 后参与评论

相关文章

来自专栏hbbliyong

WPF Trigger for IsSelected in a DataTemplate for ListBox items

<DataTemplate DataType="{x:Type vm:HeaderSlugViewModel}"> <vw:HeaderSlug...

4074
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2626
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2627
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3265
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4075
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2232
来自专栏魂祭心

原 canvas绘制clock

4294
来自专栏落花落雨不落叶

canvas画简单电路图

65711
来自专栏芋道源码1024

熔断器 Hystrix 源码解析 —— 断路器 HystrixCircuitBreaker

本文主要基于 Hystrix 1.5.X 版本 1. 概述 2. HystrixCircuitBreaker 3. HystrixCircuitBreaker....

5407
来自专栏码匠的流水账

聊聊NettyConnector的start及shutdown

reactor-netty-0.7.6.RELEASE-sources.jar!/reactor/ipc/netty/NettyConnector.java

881

扫码关注云+社区