有一个函数需要开辟一组临时变量,为了提高代码的运行效率,这组临时变量定义为全局变量和局部变量访问速度或效率哪个好些?
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
在ANSI C中全局变量数组和局部变量数组哪个效率高
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
全局变量是一次分配,永久使用。 而局部变量是进入代码块的时候分配,退出代码块的时候释放。 这是全局变量和局部变量最根本的区别。
如果你要问哪个快的话, 只要不是频繁分配的情况下,理论上局部变量是全局变量一样快。 因为对于cpu来说, 无论什么变量都是一个地址.
不过
局部变量放在栈中,栈中的数据一般比较容易被cache命中,而且栈中的数据可以由帧指针来加速存取.全局变量的存取可能需要2到3条指令,而且不易被命中本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2011-04-13 19:05回答 2 已采纳 See GCC's split-stack capability. I believe this was originally implemented to support Go. It p
- 2021-06-21 08:52回答 2 已采纳 使用QTextCodec转码https://doc.qt.io/qt-5/qtextcodec.html。或者QString自带的一些转码。这个ANSI不能算是一个确切的编码格式,在window,中文
- 2022-08-18 02:18回答 2 已采纳 你存储过程在哪个地方给@Nos变量赋值了呢?
- 2020-11-20 08:10weixin_39743064的博客 文章字数:8000 干货指数:⭐⭐⭐⭐⭐015大内存分区内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。1、栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的...
- 2022-05-17 13:31回答 2 已采纳 因为后面没有跟你要编译的文件名,g++ -v可以查看版本是否安装成功
- 2022-10-01 01:42回答 2 已采纳 建议你看下这篇博客👉 :C++实现ANSI编码转换为UTF-8编码格式文件
- 2022-09-05 13:26回答 1 已采纳 看stuinfo.txt里面的东西没用,只要程序把它读对了就行,我之前试过,怎么改都不正常显示
- 2014-03-14 17:45韩曙亮的博客 ① void 和 void*区别 : void 限定参数 限定返回值 void* 任意类型指针; ② 内存分配 : 栈区 , 堆区, 全局区, 常量区, 代码区; ③ 指针和地址解析 ;...⑤ 指针和数组解析 : 指针 和 数组 作为 形参 实参 的各种用法;
- 2022-10-04 10:52回答 2 已采纳 选UTF-8编码吧
- 2018-09-27 01:17回答 1 已采纳 All your tested functions are trivially equivalent to void no_op(int) {}. The large timing differe
- 2022-03-26 08:46回答 2 已采纳 不用删,要哪些列就筛选啊data['csvfile']=csvpathdata[['a','b','csvfile']].to_csv(...)
- 2020-12-28 08:13weixin_39796116的博客 作者:杨源鑫,排版整理:晓宇数据压倒一切。如果选择了正确的数据结构并把一切组织的...本文例举的编程虽然基于C语言,但其编程思想也适用于其他语言。此外,本文不涉及语言相关的运行效率讨论。1 概念提出所谓表...
- 2021-05-19 21:27TrungTPhan的博客 c语言static[编辑]概述static在C语言中是静态存储类型的意思,用static声明的变量在函数调用结束后依然存在,也就是在整个程序中都能用这个变量。c语言:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标...
- 2021-09-13 23:28知识点:在C语言中,指针数组可以使用指针赋值或数组初始化来初始化。例如:int *p[10]; p[0] = &x; 或 int *p[] = {&x, &y, &z}; 4. 如何定义一个有10个元素的整数型指针数组? 知识点:在C语言中,可以使用以下...
- 2022-12-14 10:28虫无涯的博客 为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,...可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C。
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司