请看下面的一道题目
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct tagStTest
{
char b;
int a;
}StTest;
int main()
{
StTest st1,st2;
st1.a = 1;
st1.b = 2;
st2.a = 1;
st2.b = 2;
if(0 ==memcmp((char*)&st1,(char*)&st2,sizeof(st1)))
{
printf("equal/n");
}
else
{
printf("not equal/n");
}
return 0;
};
运行的结果是?
在VC下,Debug模式时,结果总是equal。原因在于debug模式下,调试器会用0xCC填充临时变量。
在release模式下,才是程序真正运行的结果。