其他分享
首页 > 其他分享> > c – 字节序是在编译时决定的吗?

c – 字节序是在编译时决定的吗?

作者:互联网

我想要变得懒惰并编写一些代码,如果目标机器的字节顺序与我自己的字节序不同,那么它将会破坏.但我想知道什么时候它会中断,所以如果有必要我可以解决它.

浮点数和整数的字节顺序是编译程序的属性,这样我可以在编译时用某种断言检查它吗?或者它是我必须在运行时声明的东西?

解决方法:

是的,字节序是有问题的机器所固有的,并且在编译时是已知的.大多数操作系统都会在某处设置#define来告诉你字节顺序是什么.

特别是在Linux上,您可以执行以下操作:

#if __BYTE_ORDER == __LITTLE_ENDIAN
...
#elif __BYTE_ORDER == __BIG_ENDIAN
...
#elif __BYTE_ORDER == __PDP_ENDIAN
...
#else
...
#endif

标签:c-3,c,endianness
来源: https://codeday.me/bug/20190724/1524849.html