+ -
当前位置:首页 → 问答吧 → 把变量定义在数据段和堆栈段,效果有什么不同?

把变量定义在数据段和堆栈段,效果有什么不同?

时间:2011-04-22

来源:互联网

这两个段对于数据的操作,权限/功能上,到底有什么不本质的不同?

作者: iuoewrw163   发布时间: 2011-04-22

栈段是特殊的数据段。栈段和数据段的用途不同。
个人认为,就本质来说,都是在内存里定义的数据,对于CPU来说,没什么不同。就如有符号数和无符号数。

作者: masmaster   发布时间: 2011-04-22

引用 1 楼 masmaster 的回复:
栈段是特殊的数据段。栈段和数据段的用途不同。
个人认为,就本质来说,都是在内存里定义的数据,对于CPU来说,没什么不同。就如有符号数和无符号数。


那么,什么时候应该把变量声明到堆栈段比较好,什么时候放在数据段比较好呢?

作者: iuoewrw163   发布时间: 2011-04-22

引用 2 楼 iuoewrw163 的回复:
引用 1 楼 masmaster 的回复:
栈段是特殊的数据段。栈段和数据段的用途不同。
个人认为,就本质来说,都是在内存里定义的数据,对于CPU来说,没什么不同。就如有符号数和无符号数。


那么,什么时候应该把变量声明到堆栈段比较好,什么时候放在数据段比较好呢?

不好说。 根据你的喜欢。 通常来说(未必通用),你可以这么理解, 定义在数据段里的变量是‘全局’的,定义在栈段里的变量则是‘局域’的。 因为子程序(子例程,函数)里面的变量都是定义在栈里的。 个人观点。仅供参考。
所以说, 不是放在那里好的问题, 而是根据你的需要。

作者: masmaster   发布时间: 2011-04-22