C++:关于函数在内存中的位置

1.如果定了一个类,又在主函数中定义了类对象,那么请问函数是存在了哪里?(书上说"类并不是内存的物理实体,我的理解是,他无法去存放函数喽);2."函数是一块连续的内存,函... 1.如果定了一个类,又在主函数中定义了类对象,那么请问函数是存在了哪里?(书上说"类并不是内存的物理实体,我的理解是,他无法去存放函数喽);
2."函数是一块连续的内存,函数名是这段内存的首地址,那我想问一下,下面这段程序的内存有多大,像 if ,while,这样抽象的东西,占多少内存.

void f(*p)
{
int i=0;
while(i<10)
{cout<<(int)(p)<<endl;
p++;
i++;
}

以上这段程序内存有多大?
展开
 我来答
zadecn
2011-05-26 · 超过20用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:0
展开全部
>>1.如果定了一个类,又在主函数中定义了类对象,那么请问函数是存在了哪里?(书上说"类并不是内存的物理实体,我的理解是,他无法去存放函数喽);
函数首先是存放在外存文件中的,比如.dll .lib .so .a .exe .out等.在函数执行的时候,才会被OS以只读的方式加载到内存.类和其成员函数的关系,参见lippman的<<深入C++对象模型>>

2."函数是一块连续的内存,函数名是这段内存的首地址,那我想问一下,下面这段程序的内存有多大,像 if ,while,这样抽象的东西,占多少内存.
程序所占内存的大小是由源代码编译为二进制的机器指令字节大小决定的(当然还有OS加载的因素,一般是使用内存映射的方式),一般我们不需要关心这个.如果你感兴趣,可以参考一些相关的书籍(例如汇编等等)
lover_fuping
2011-05-26
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
1.类并不是内存的物理实体,就是说在编译之后的内存空间布局中是没有类这个概念的,还是以函数的形式来组织的,也就是说类是个逻辑概念。
2.这个东西,很显然和编译器以及你的优化有关系的,if 和while占的内存不过也就三四条指令的空间。编译器会把他转化为汇编,汇编什么样子就决定了他的内存空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xi4ohui
2011-05-26
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
推荐一本书《程序员的自我修养》

参考资料: http://book.douban.com/subject/3652388/

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PJJDCCW
2015-07-05 · TA获得超过50.1万个赞
知道顶级答主
回答量:6.9万
采纳率:91%
帮助的人:4810万
展开全部
函数首先是存放在外存文件中的,比如.dll .lib .so .a .exe .out等.在函数执行的时候,才会被OS以只读的方式加载到内存.类和其成员函数的关系。
函数的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式