深层次问题,估计多数人也没有碰到过,可能关于字节对齐方式的,近来看看。
我原来有一套C程序,后来和VC++混合,将其移植到了windows平台上,
即C,C++混合起来编程,用extern "C"定义两者间的接口,通过,运行正常,
但是有一个问题:如下:
unsigned char j=2;
void Fun1()
{
unsigned short i;
i=0;
i = Fun2();
//此时i==0xcc02!!!需要i = 0x00FF&i;才会变成2,
//如果写成i=2;则正常。
}
unsigned char Fun2()
{
return j;
}
我觉得可能是编译器字节对齐方式的问题,可我查了cl的帮助,没有对齐方式的选项。