C++:关于函数在内存中的位置
1.如果定了一个类,又在主函数中定义了类对象,那么请问函数是存在了哪里?(书上说"类并不是内存的物理实体,我的理解是,他无法去存放函数喽);2."函数是一块连续的内存,函...
1.如果定了一个类,又在主函数中定义了类对象,那么请问函数是存在了哪里?(书上说"类并不是内存的物理实体,我的理解是,他无法去存放函数喽);
2."函数是一块连续的内存,函数名是这段内存的首地址,那我想问一下,下面这段程序的内存有多大,像 if ,while,这样抽象的东西,占多少内存.
void f(*p)
{
int i=0;
while(i<10)
{cout<<(int)(p)<<endl;
p++;
i++;
}
以上这段程序内存有多大? 展开
2."函数是一块连续的内存,函数名是这段内存的首地址,那我想问一下,下面这段程序的内存有多大,像 if ,while,这样抽象的东西,占多少内存.
void f(*p)
{
int i=0;
while(i<10)
{cout<<(int)(p)<<endl;
p++;
i++;
}
以上这段程序内存有多大? 展开
4个回答
展开全部
>>1.如果定了一个类,又在主函数中定义了类对象,那么请问函数是存在了哪里?(书上说"类并不是内存的物理实体,我的理解是,他无法去存放函数喽);
函数首先是存放在外存文件中的,比如.dll .lib .so .a .exe .out等.在函数执行的时候,才会被OS以只读的方式加载到内存.类和其成员函数的关系,参见lippman的<<深入C++对象模型>>
2."函数是一块连续的内存,函数名是这段内存的首地址,那我想问一下,下面这段程序的内存有多大,像 if ,while,这样抽象的东西,占多少内存.
程序所占内存的大小是由源代码编译为二进制的机器指令字节大小决定的(当然还有OS加载的因素,一般是使用内存映射的方式),一般我们不需要关心这个.如果你感兴趣,可以参考一些相关的书籍(例如汇编等等)
函数首先是存放在外存文件中的,比如.dll .lib .so .a .exe .out等.在函数执行的时候,才会被OS以只读的方式加载到内存.类和其成员函数的关系,参见lippman的<<深入C++对象模型>>
2."函数是一块连续的内存,函数名是这段内存的首地址,那我想问一下,下面这段程序的内存有多大,像 if ,while,这样抽象的东西,占多少内存.
程序所占内存的大小是由源代码编译为二进制的机器指令字节大小决定的(当然还有OS加载的因素,一般是使用内存映射的方式),一般我们不需要关心这个.如果你感兴趣,可以参考一些相关的书籍(例如汇编等等)
展开全部
1.类并不是内存的物理实体,就是说在编译之后的内存空间布局中是没有类这个概念的,还是以函数的形式来组织的,也就是说类是个逻辑概念。
2.这个东西,很显然和编译器以及你的优化有关系的,if 和while占的内存不过也就三四条指令的空间。编译器会把他转化为汇编,汇编什么样子就决定了他的内存空间。
2.这个东西,很显然和编译器以及你的优化有关系的,if 和while占的内存不过也就三四条指令的空间。编译器会把他转化为汇编,汇编什么样子就决定了他的内存空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数首先是存放在外存文件中的,比如.dll .lib .so .a .exe .out等.在函数执行的时候,才会被OS以只读的方式加载到内存.类和其成员函数的关系。
函数的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
函数的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |