今日遇到个来面试C的

今天遇到个来面试C的
于是我就无耻的让他写了一个大端小端的判断函数.....
然后我发现

我发现他代码写的太好了,于是我就问 这代码真是你写的 不是抄的?他说学习借鉴的,然后我决定,这种高手还是去别家吧 我们要不起....

代码如下 

static union {   
    char c[4];   
   uint32_t mylong;   
} endian_test = {{ 'l', '?', '?', 'b' } };  

#define ENDIANNESS ((char)endian_test.mylong) 
 
  bool IsBigEndian()
{
if(ENDIANNESS=='l')
{
return false;
}

 return true;
}

我真心看不懂,谁来解释下这是神马意思?

------解决方案--------------------
不懂就让走人,您这考官是不是有点。。。
------解决方案--------------------
如果 mylong的第一个字节是‘l’则为小端,没看出有什么问题。
------解决方案--------------------
今日遇到个来面试C的
------解决方案--------------------
没有必要搞这么复杂吧……今日遇到个来面试C的
------解决方案--------------------
如果 lz 不是自娱以娱人,请google "联合体"
------解决方案--------------------
要是我的话果断这样呀:

int isBigEndian()
{
    short temp = 0xFF00;
    return *((char*)&temp) == 0xFF;
}

------解决方案--------------------
今日遇到个来面试C的
------解决方案--------------------
#include <stdio.h>

int checkSytem()
{
union checkSytem
{
int i;
char ch;
}c;
c.i = 1;
return(c.ch == 1);
}

void main()
{
if (checkSytem() == 1)
{
printf("您的系统为小端模式!\n");
printf("高字节存储在在高地址,低字节存储在低地址,左边为高字节!\n");
}
else
{
printf("您的系统为大端模式!\n");
printf("高字节存储在在低地址,低字节存储在高地址,左边为高字节!\n");
}
}

------解决方案--------------------
楼主不用捣弄了,这是垃圾代码。
------解决方案--------------------
引用:
#include <stdio.h>

int checkSytem()
{
union checkSytem
{
int i;
char ch;
}c;
c.i = 1;
return(c.ch == 1);
}

void main()
{
if (checkSytem() == 1)
{
printf("您的系统为小端模式!\n");
printf("高字节存储在在高地址,低字节存储在低地址,左边为高字节!\n");
}
else
{
printf("您的系统为大端模式!\n");
printf("高字节存储在在低地址,低字节存储在高地址,左边为高字节!\n");
}
}
我还是觉得这样的好。今日遇到个来面试C的