Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138078
  • 博文数量: 30
  • 博客积分: 887
  • 博客等级: 准尉
  • 技术积分: 342
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-03 19:11
文章分类

全部博文(30)

文章存档

2012年(19)

2011年(1)

2010年(6)

2009年(4)

我的朋友

分类: C/C++

2012-02-03 22:30:33

请写一个 C 函数,若处理器是 Big_endian 的,则返回 0;若是 Little_endian 的,则返回 1。

通过指针类型强制转换并对整型数据首字节赋值,判断该赋值赋给了高位还是低位。

方法一:
  1. union w
  2. {
  3.     int a;
  4.     char b;
  5. }c;
  6.  
  7. int checkCPU()
  8. {
  9.     c.a = 1;
  10.     return (c.b == 1);
  11. }

方法二:
  1. union mm
  2. {
  3.     char c[4];
  4.     unsigned long l;
  5. };

  6. char checkCPU()
  7. {
  8.     mm c = { 'l', '?', '?', 'b' };
  9.     return (char)c.l;
  10. }
阅读(592) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~