由于工作原因,最近接触到了PLC和它的组态问题,由于公司用的是VIPA的PLC,组态王上没有与他的以太网通信协议,最后自己通过组态王驱动开发包开发了个与VIPA的驱动,在当中遇到了个问题,就是当需要写入一个浮点数(float)到PLC的MD寄存器的时候发现出现了问题,检查了很多遍发现程序编写没有问题,最后想到了是不是内存中数据的存储方式是不是不正确,后面看了下libnodave.dll的源代码发现就是大端小端的问题,现在给出一个判断大端小端存储的代码(--网上查找的--)
BOOL MYDLLPro::CheckCPU()
{
union w
{
int a;
char b;
} c;
c.a = 1;
return(c.b == 1);
}
若返回的是TRUE则为小端存储,否则为大端存储