沈天真
作者沈天真2022-01-19 20:45
售前支持, IPS

Tip ---- 几行C语言程序测试字节序

字数 720阅读 775评论 0赞 0

现在各种架构的CPU,还有各种操作系统冲击着IT人员的眼睛。以Power处理器为例,上面可以安装 AIX,Linux,IBM I, K-Unix 几种操作系统。以面向大型机的S390处理器为例,上面可以安装 z/OS和Linux。

对于开发人员来说,很关心的一个问题就是字节序问题,尤其是使用C/C++语言的开发人员。面对如此多的CPU和操作系统的组合,很难全部记住每种组合上面的字节序是什么。如果手头恰好有服务器的话,通过一个测试程序来确定字节序也不失为一个快捷的方法。

其实通过测试程序确定字节序并不复杂,网上的相关文章和测试程序也很多,这里做个搬运工,展示一个简单的C语言程序来确定字节序,程序如下:

#include <stdio.h>
int main(void)
{
  int a=0x11223344;
  char *p = (char *)&a;

  if (*p == 0x11)
    printf("big endian ! \\n");
  
  if (*p == 0x44)
    printf("little endian ! \\n");

 return 0;
}

在手头的一台Power9+Redhat 7.6服务器上运行过程如下

[root@clgitlab home]# gcc -o endian-test endian-test.c    
[root@clgitlab home]# 
[root@clgitlab home]# ./endian-test                    
little endian ! 
[root@clgitlab home]#

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广