我很好奇这个函数是否会决定字节序.
如果整数someInt存储在little endian中,则测试是一个等于1的位掩码.
在位掩码中,将0x1000转换为匹配机器的endian样式还是"常量"?
#include <stdio.h>
int isBigEndian(){
int someInt =0x0001;
if(someInt & 0x0100 == 1)
return 1;
else
return 0;
}
int main(){
int returnVal = isBigEndian();
printf("return val is %d", returnVal);
}
Run Code Online (Sandbox Code Playgroud)
该函数将始终返回零,因为您的常量也存储在系统的本机字节序中.更好的选择是使用能够回答您问题的系统API.如果你必须是可移植的,你可以比较val == ntohl(val)决定字节顺序.