想讨教一个问题,C程序中假如申明了一个结构体类型,当执行程序时,声明部分会存在于内存代码段中么

C语言 码拜 9年前 (2016-05-31) 1147次浏览
虽然书上说的C程序,只有在定义结构体变量的时候,才在堆区或栈区分配内存,,,但是结构体类型的声明信息很重要啊,程序执行时会真的不存在于内存当中么?假如不存在,电脑怎么知道要定义的结构体变量是什么样子的。    还望各位朋友,帮本人解决一下心中的疑惑,谢谢!想讨教一个问题,C程序中假如申明了一个结构体类型,当执行程序时,声明部分会存在于内存代码段中么
解决方案

5

结构体的定义会存在于内存的代码段的,但不会出现在堆区或栈区,只有定义结构体变量是才会根据代码段的结构体定义信息在栈上或堆上分配内存

10

编译器编译后已经全变成了二进制数据,没有类型这些的概念了
假如硬要说存去哪了,只能说当你定义变量时的机器指令会有所不同

5

不在内存中。编译器根据这些东西生成了只处理地址、数据的机器语言代码,这些代码在内存中,存储数据的变量位于内存中,其余的都用不到了。

10

声明结构体类型,它的本质和内置类型如int,char等一样,是一种数据类型,不过是用户本人自定义的,用来满足那些内置类型不能满足需求的时候,你认为int, char等数据类型会在内存中开辟空间吗?只有在用类型定义变量的时候才会在内存中开辟空间,存储这个变量对应的值,它就是提供了一个模子,告诉编译器这种类型有多大,定义的时候需要开辟多大的空间。

15

调试版本,可能会有类型相关信息的
发布版本,一般不会有
当然,VC有一个部分,可能会有。这就是托管C++
这其实是另一种语言了,不是很符合C++的定义
类型的信息这些东西,对于编译好的程序。并不是运行时候必须的东西,并不很重要、
只有像调试代码等场合,可能会用到。
类型系统,只是对于高级语言,对于人来说,是重要的。
对编译后的代码。完全是不必要的。
汇编语言,只有整型,浮点型,指针其实是某种整型
结构,数组都是可有可无的,一样可以编写程序

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明想讨教一个问题,C程序中假如申明了一个结构体类型,当执行程序时,声明部分会存在于内存代码段中么
喜欢 (0)
[1034331897@qq.com]
分享 (0)