浮动栈是什么?

Maxwell 2009-05-23 01:10:42
从CSDN首页上看了个有关宏和inline的帖子,里面有位老师非常确凿的提出了浮动栈的概念,好像说是每遇到一个左大括号就会创建一个浮动栈,以前看书不认真,麻烦哪位能给解释一下。
...全文
190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maxwell 2009-05-26
  • 打赏
  • 举报
回复
这里讨论的很少,开了个新帖,要讨论的请移步
http://topic.csdn.net/u/20090526/13/a6dcaf36-16ca-423a-8626-f466f095e684.html
xjxhsjl 2009-05-25
  • 打赏
  • 举报
回复
高手
crushor 2009-05-25
  • 打赏
  • 举报
回复
不懂,不过假如你在二楼,非要说二楼就是你的浮动楼的楼底,厄,应该也没关系吧
acrobatyuer 2009-05-25
  • 打赏
  • 举报
回复
不懂。。。留名。。。
crushor 2009-05-25
  • 打赏
  • 举报
回复
try it,至少我觉得在这种情况下,有什么建栈拆栈过程,也只是改下指针吧

#include "stdafx.h"
#include <iostream>
using namespace std;

void fun()
{
int i = 0;
int j = 0;
cout<<"addr1 is :"<<hex<<&i<<endl;
cout<<"addr2 is :"<<hex<<&j<<endl;
{
int k = 0;
int l = 0;
cout<<"addr3 is :"<<hex<<&k<<endl;
cout<<"addr4 is :"<<hex<<&l<<endl;
}
}


int main(int argc, char* argv[])
{
fun();

return 0;
}

Maxwell 2009-05-25
  • 打赏
  • 举报
回复
看起来没人知道浮动栈啊。

请看这个链接里
http://student.csdn.net/space.php?uid=39028&do=thread&id=1411
一个很牛的老师说的

不管是不是inline,它总有大括号,而在C编译器看来,遇到一个大括号,就有一个建栈的过程,后面还有拆栈的过程,而宏是编译前的纯字符拷贝,没有这一过程。


C和C++的编译器有个特点,见到大括号就建新栈。[code]

[code=C/C++]
inline函数在编译时,由于有大括号,会有一次建栈和拆栈的过程,因此,其运行成本,其实还是相当于一正常次函数调用的百分之几十。仅仅是减少了一个call的CPU压栈行为,C部分的运行期浮动内存栈还是正常建立了的。
Maxwell 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kendy_ke 的回复:]
栈又分为基栈和浮动栈,基栈就是编译期间就分配好了的内存。
全局变量,const的常量,static的变量,函数的代码,都是这部分。
浮动栈就是运行期间,根据函数,对象调用关系,动态分配的栈,类成员变量,函数内部变量,都是用的浮动栈。
[/Quote]

晕,别从网上把我看到那人的说法再复制过来贴给我看。。。
Maxwell 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yanghaijun2008 的回复:]
是用动态开辟内存来存取前括号到后括号释放。
[/Quote]

有没有具体的实现细节的解释?

我只知道每当定义变量的时候栈顶指针会改变,但是不知道在遇到左大括号时堆栈还要有相应的处理,能不能讲讲具体实现?
性能侠客行 2009-05-24
  • 打赏
  • 举报
回复
栈又分为基栈和浮动栈,基栈就是编译期间就分配好了的内存。
全局变量,const的常量,static的变量,函数的代码,都是这部分。
浮动栈就是运行期间,根据函数,对象调用关系,动态分配的栈,类成员变量,函数内部变量,都是用的浮动栈。
warren258 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yanghaijun2008 的回复:]
是用动态开辟内存来存取前括号到后括号释放。
[/Quote]
这样有什么意义吗?能不能详细的解释一下?
yanghaijun2008 2009-05-24
  • 打赏
  • 举报
回复
是用动态开辟内存来存取前括号到后括号释放。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧