最近在设计自己的TCP/IP协议栈,代码完成的差不多了,已经能够跑在嵌入式STM32开发板上。
闲来无事,想着优化一下问题的解决方案。这个问题据说是很常见的面试问题:如何判断当前系统的大小端?
看了网上的一些解决方法,感觉都不够简洁,于是尝试着用一行代码来解决这个问题:
#define is_little_endian() (*(uint16_t *)"a" == 'a')
就是这样,一个宏就可以判断出来。没必要用结构体,也没必要用位域。
最近在设计自己的TCP/IP协议栈,代码完成的差不多了,已经能够跑在嵌入式STM32开发板上。
闲来无事,想着优化一下问题的解决方案。这个问题据说是很常见的面试问题:如何判断当前系统的大小端?
看了网上的一些解决方法,感觉都不够简洁,于是尝试着用一行代码来解决这个问题:
#define is_little_endian() (*(uint16_t *)"a" == 'a')
就是这样,一个宏就可以判断出来。没必要用结构体,也没必要用位域。