prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 10.16

Q如何使用预处理器#if表达式来判断机器的字节顺序是大端还是小端?


A你很可能不能。检测字节序的常用技术涉及到指针或指向char的指针,或者可能涉及联合体,但预处理器算术只使用长整型,并且没有寻址的概念。另一个诱人的可能性是类似这样的代码:

	#if 'ABCD' == 0x41424344
但这也不可靠。无论如何,预处理器中使用的整型格式#if表达式不一定与运行时使用的相同。

你确定需要明确知道机器的字节序吗?通常最好编写不关心字节序的代码(例如,参见问题 12.42 中的代码片段)。另请参见问题 20.9

参考:ISO Sec. 6.8.1
H&S 第 7.11.1 节,第 225 页


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管