工具/软件:TI C/C++编译器
我的结构设置如下:
结构foo{
uint8_t low;
uint8_t high;
} foo;
当我这样做时:
void foo(){
uint16_t volatile *bar;
bar =(uint16_t volatile *)&foo.low
}
指针栏 不能获取foo.low字节的地址。 相反 ,这是完全不同的。 在此特定编译版本中,foo.low的地址是0x0000B2E6,但指针条指向 0x0.0003万C2,这是完全错误的。
调试器表达式 认为它应该工作出色,即*(uint16_t volatile *)&foo.low解析为16位值,foo.high为首字节。