语言的设计发展是从低级向高级发展的过程。汇编放一边不说,可以看看C是如何转换为汇编代码,我仅仅是对原理性东西做概要解释,所以有些地方可能不够准确。C语言我可以将程序内容,分为三个部分:变量、结构、函数。
变量一般分为函数内变量,函数外变量,这两者之间是有区别的,函数外变量,最终将被存放在一个全局堆空间,而函数内变量往往通过栈方式来构建出来,或者说是动态存在于栈空间。对于函数外变量与函数内变量的存在模型的说明,与汇编语言没有任何关系,汇编语言是对具体动作的指示,而将变量通过什么方式存储、消除是语言背后模型设计的问题,这个又有点类似虚拟机模型的讨论了,不跑题,不瞎扯了。
那结构是什么,本质上什么也不是,如果没有这个结构的变量,那么这个结构真的屁也不是,如果定义了这个结构的变量,那么就有说的了,这个变量会在生成代码的过程中有所特殊处理,特殊在几个地方,一个是会为这个对象分配一个内存块来存储这个结构的变量,另外还有清楚结构内的数据组织,数据对齐方式,这样在处理A.p