經典筆試題:用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 }

注: 通信系統中,通信雙方數據傳送方式中,先發低字節的方式叫小端,先發高字節的方式叫大端。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM