我认为,汇编中一切皆地址。
在c/c++使用很多的结构体,在汇编中是如何表示的呢?其实,在汇编中根本就没有什么结构体的概念,结构体本质就是一堆连在一起的数据。只不过有人把他们想象成一个整体,并以此产生结构体的概念,这与结构体中带有变长数组时候的情形一样:
其实上面这个结构体尾部带有的变长数组,data[0]与结构体Test没有任何关系,sizeof(Test)就知道。
结构体在汇编是如何表示的呢?
譬如如何访问Test中的x成员,其实就是采用地址偏移的方式,根据定义的Test对象的起始地址,偏移一定的大小就可以访问结构体中的不同成员了。
测试代码:
g