查看: 4143|回复: 5
打印 上一主题 下一主题

大小端测试

[复制链接]
跳转到指定楼层
沙发
发表于 2014-8-5 15:15:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
编写一个函数,测试MCU是大端模式存储还是小端模式存储
  1. /****************************************************************
  2. **  函数名称:LBEndian
  3. **  函数功能:大小端测试函数
  4. **  入口参数:None
  5. **  出口参数:1 or 0
  6. ****************************************************************/
  7. int LBEndian (void)
  8. {
  9.     unsigned int   uiNumber = 0x12345678 ;
  10.     unsigned char  *ucptr   = (void *)0  ;
  11.     /* 将最低位1一个字节赋给ucptr */
  12.     ucptr = (unsigned char *)(&uiNumber) ;
  13.     /* 如果是小段模式,则返回1*/
  14.     if ( 0x78 == (*ucptr) )
  15. {
  16.         return 1 ;
  17.     }  
  18. /* 如果是大端模式,则返回0 */
  19. else
  20. {
  21.         return 0 ;
  22.     }
  23. }
复制代码
通过ucptr = (unsigned char *)(&uiNumber) (好好理解这句程序);截取低地址的存储字节数据,如果低地址存储的是低字节,那么就是小端模式,如果低字节存储的是高字节,那么就是大端模式。ucptr = (void *)0 ,这样做是为了防止野指针的危患。


回复

使用道具 举报

板凳
发表于 2014-8-5 15:30:04 | 只看该作者
不错,涨姿势了
回复 支持 反对

使用道具 举报

地板
发表于 2014-8-5 15:40:11 | 只看该作者
....。其实,,没明白
回复 支持 反对

使用道具 举报

4#
发表于 2014-8-10 14:36:18 | 只看该作者
还没面对过这个问题
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2014-8-10 15:32:11 | 只看该作者
墨奚 发表于 2014-8-10 14:36
还没面对过这个问题
常考的题
记住它,它会给你带来好云
回复 支持 反对

使用道具 举报

6#
发表于 2014-8-10 15:39:45 | 只看该作者
{:soso_e116:}   
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表