程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 大小端識別代碼

大小端識別代碼

編輯:C++入門知識

給出系統大小端識別的代碼,僅供參考。
傳統寫法:
 
int get_order()
{
    union endian
    {
        short s;
        char c[2];
    } order;
 
    order.s = 0x1234;
 
    if (order.c[0] == 0x12 && order.c[1] == 0x34)
    {
        return 1; /* big endian */
    }
    else
    {
        return 0; /* little endian */
    }
}
簡單寫法:
 
int get_order()
{
    short s = 1;
    short *ps = &s
    char *pc;
 
    pc = (char *)ps;
 
    if (*pc == 0)
    {
        return 1; /* big endian */
    }
    else
    {
        return 0; /* little endian */
    }
}
參數寫法:
 
static int test_order(char *c)
{
    *c = 1;
    return 0;
}
 
int get_order()
{
    int i = 0;
 
    test_order(&i);
    if (i == 0)
    {
        return 1; /* big endian */
    }
    else
    {
        return 0; /* little endian */
    }
}
 
偷懶寫法:
 
int get_order()
{
    if (htons(1) == 1)
    {
        return 1; /* big endian */
    }
    else
    {
        return 0; /* little endian */
    }
}
作者:aile770339804

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved