大端模式是高位字节存储在低位地址,小端模式是高位字节存储在高位地址。
以下是几种常见的方法:
1.使用联合体(Union):
#include <stdio.h>
union test{
int i;
char c[4];
};
int main() {
union test test1;
test1.i = 1;
if (test1.c[0] == 1) {
printf("This system is Little Mode.\n");
} else {
printf("This system is Big Mode.\n");
}
return 0;
}
在这个示例代码中,我们使用了一个名为test的联合体。联合体包含一个整数类型的成员i和一个字符数组类型的成员c,长度为4个字节。我们将整数值1存储到test.i中,并通过test1.c的各个元素来判断字节序。如果低地址存放的是值的最低位,那么c[0]的值将为1;如果低地址存放的是值的最高位,c[0]的值将为0。
2.使用指针转换:
#include <stdio.h>
int main() {
int num = 1;
char* ptr = (char*)#
if (*ptr == 1) {
printf("This system is Little Mode.\n");
} else {
printf("This system is Big Mode.\n");
}
return 0;
}
该方法通过将int类型的指针转换为char类型的指针,然后判断指针指向的内存中的值,来确定字节序。