我知道以编程方式测试字节顺序的最常用方法是像这样转换为 char*:
short temp = 0x1234;
char* tempChar = (char*)&temp;
但是可以通过转换为 short* 来完成,如下所示:
unsigned char test[2] = {1,0};
if ( *(short *)test == 1)
//Little-Endian
else
//Big-Endian
我是否正确,“测试”缓冲区将使用 Little-Endian 约定(从右到左:“0”在较低地址,“1”在较高地址)保存在内存中(在 x86 平台上),就像以防万一与“温度”变量?
更一般地说,如果我有一个字符串: char tab[] = "abcdef"; 它将如何存储在内存中?它会像“fedcba”一样反转吗?
谢谢。提前:-)
PS。
有什么方法可以查看程序的数据在系统内存中的样子?我想在“现实生活”中看到 Little-Endian 中的字节交换。