little endian c语言,endian.h这个头文件里面的宏可以直接用么?
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
endian.h頭文件中以宏的形式定義了大端字節(jié)序、小端字節(jié)序和混合字節(jié)序
#define __LITTLE_ENDIAN 1234
#define __BIG_ENDIAN 4321
#define __PDP_ENDIAN 3412
并且宏__BYTE_ORDER確定了當(dāng)下機器所采用的字節(jié)序,根據(jù)描述,這個宏定義在頭文件bits/endian.h中
/* This file defines `__BYTE_ORDER' for the particular machine. */
#include
但是在glibc源碼中,bits/endian.h文件中,__BYTE_ORDER并沒有提及。
對__BYTE_ORDER的定義是在類似./glibc-version/sysdeps/[...]/bits/endian.h的文件中的。
貌似是針對不同的平臺情況分別進行定義。比如在./sysdeps/hppa/bits/endian.h中:
/* hppa1.1 big-endian. */
#define __BYTE_ORDER __BIG_ENDIAN
可是,在我的紅帽系統(tǒng)中,一系列的sysdeps目錄沒了,取而代之的是bits/endian.h中的定義:
/* i386/x86_64 are little-endian. */
#define __BYTE_ORDER __LITTLE_ENDIAN
這里有兩個不明白的地方:
1、源碼中無內(nèi)容的bits/endian,為什么在具體系統(tǒng)里面就有了具體內(nèi)容?是通過定制,然后人工修改的么?
2、endian.h中的__BYTE_ORDER、__BIG_ENDIAN之類的宏我們可以自由使用么?雖然說用到的機會并不多。
盡管這個頭文件是公開的,但是總感覺這東西好像只有編譯器才能用的樣子……
而且在中講到了字節(jié)序的內(nèi)容,但并沒有提及endian.h頭文件。
總結(jié)
以上是生活随笔為你收集整理的little endian c语言,endian.h这个头文件里面的宏可以直接用么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ua解析接口_VIP电影解析接口(80个
- 下一篇: python requests 模拟浏览