展开查看
以下是引用letham在2014-11-08 09:47:59的发言 >3楼:这是个指针地址的问题,西门子32指针如2楼所说。直观点来说,就是MD14=100.加了括号后,MW[MD14]和MW[100]并不是一回事
第二,对于非BYTE.BIT的数据来说[]里面的必须是8的整数倍。
加了括号,你要想表示MW100 和MW[MD14],则必须要求MD14=100*8 也就是左移3位,这也是你经常看到指针编程时出现SLD 3的原因。
第三,对于BYTE.BIT BOOL量 实际地址到指针地址的换算关系是 BYTE*8+BIT 。反过来指针地址到实际地址的转换过程就是 指针地址/8 整数部分就是BYTE。BIT=余数部分*8
3楼解释的更详细