unsigned int data@0x09;
本来是想定义一个int类型变量data ,为他分配地址0x09.
但是看map文件并没有给变量data分配地址。因为发现
start 00000000 end 00000000 length 0 segment .bsct
start 00000000 end 00000006 length 6 segment .ubsct
但是奇怪的是把unsigned int data@0x09;修改为unsigned int data;可以为变量data分配两个字节内存,因为
start 00000000 end 00000000 length 0 segment .bsct
start 00000000 end 00000008 length 8 segment .ubsct
现在问题来了,是不是这种分配方式根本就不会分配一个新的内存地址,只是把data指向一个特定的地址?
查看CXSTM8_UsersGuide是这样描述的,黄色的地方好像就是说这样的声明不会预留内存空间?
请问我的理解正确么?那么这种用法有什么用呢?只是为了方便io口的操作?
|