经典笔试题:用C写一个函数测试当前机器大小端模式

Posted 思考与实践并行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典笔试题:用C写一个函数测试当前机器大小端模式相关的知识,希望对你有一定的参考价值。

“用C语言写一个函数测试当前机器的大小端模式”是一个经典的笔试题,如下使用两种方式进行解答:

1. 用union来测试机器的大小端

 1 #include <stdio.h>
 2 
 3 union test
 4 {
 5     int a;
 6     char b;
 7 };
 8 
 9 int endian_test(void)
10 {
11     union test t1;
12     t1.a = 1;
13     return t1.b;
14 }
15 
16 int main(void)
17 {
18     int i = endian_test();
19     if(i == 1)
20     {
21         printf("is little endian.\n");
23     }
24     else
25     {
26         printf("is big endian.\n");
28     }
29     
30     printf("i = %d.\n", i);
31     
32     return 0;
33 }

2. 用指针测试机器大小端

1 #include <stdio.h>
2 
3 int main()
4 {
5   int a = 1;
6   char b = *((char *)&a);
7 
8   return 0;    
9 }

注: 通信系统中,通信双方数据传送方式中,先发低字节的方式叫小端,先发高字节的方式叫大端。

 

以上是关于经典笔试题:用C写一个函数测试当前机器大小端模式的主要内容,如果未能解决你的问题,请参考以下文章

百度笔试题简述大小端字节序的概念并写一个小程序检测当前机器的大小端字节序

经典PHP笔试题

C语言——动态内存管理经典笔试题+柔性数组

动态内存管理(动态内存函数的介绍,c/c++经典笔试题,柔性数组)

动态内存管理(动态内存函数的介绍,c/c++经典笔试题,柔性数组)

C语言进阶刷题笔记strlen和sizeof经典笔试题