这个关键是判断第一个字节的内容比较而来。和书写顺序一致就是大端,不书写顺序不一致就是小端,随便写了一个小测试腊帆圆程序,源码如下:
#include <cstdio>char endian()
{
int i = 0x423f3f4C//i存储了4个字符轿握,B??L
return *(char *)&i
}
int main(int ac,char **pav)
{
char ch = endian()
if (ch=='L') printf("little endian!\n")
else if (ch=='B') printf("big endian!\n")
else if (ch=='?') printf("unknow endian!\n")
return 0
}
执行效果如下图轮塌所示:
如果是考虑可移植性之类的,你完全可以使用
unsigned char endian(){int i = ~0 - 1return *(unsigned char *)(&i)}#include <stdio.h>union utype
{
局戚碰int i
char a
}
void main()
{
union 仔巧utype u
u.i = 1
if (u.a)
桐谈printf("小端\n")
else
printf("大端\n")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)