编写一个函数,测试MCU是大端模式存储还是小端模式存储 - /****************************************************************
- ** 函数名称:LBEndian
- ** 函数功能:大小端测试函数
- ** 入口参数:None
- ** 出口参数:1 or 0
- ****************************************************************/
- int LBEndian (void)
- {
- unsigned int uiNumber = 0x12345678 ;
- unsigned char *ucptr = (void *)0 ;
- /* 将最低位1一个字节赋给ucptr */
- ucptr = (unsigned char *)(&uiNumber) ;
- /* 如果是小段模式,则返回1*/
- if ( 0x78 == (*ucptr) )
- {
- return 1 ;
- }
- /* 如果是大端模式,则返回0 */
- else
- {
- return 0 ;
- }
- }
复制代码通过ucptr = (unsigned char *)(&uiNumber) (好好理解这句程序);截取低地址的存储字节数据,如果低地址存储的是低字节,那么就是小端模式,如果低字节存储的是高字节,那么就是大端模式。ucptr = (void *)0 ,这样做是为了防止野指针的危患。
|