#include "stdio.h"
typedef struct CustomStruct
{
short Element1[10];
}CustomStruct;
void F2(char* Y)
{
*Y=0x00;
Y++;
*Y=0x1F;
}
void F1(CustomStruct* X)
{
F2((char *)X);
printf("s = %x\n", (*X).Element1[0]);
}
int main(void)
{
CustomStruct s;
F1(&s);
return 0;
}
0x1f00
上面的 C 代码在我的 PC 上编译和运行时会打印出来。
但是当我将它闪存到嵌入式目标(uController)并进行调试时,我发现
(*X).Element1[0] = 0x001f
.
1-为什么PC和嵌入式目标上的结果不同?
2-我可以在此代码中修改什么以便它0x001f
在 PC 机箱中打印,而不更改代码的核心(通过添加编译器选项或其他东西)。