社区
C++ 语言
帖子详情
自动变量为什么不会自动初始化?
Louistao
2011-06-16 05:11:33
RT
...全文
179
15
打赏
收藏
自动变量为什么不会自动初始化?
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Louistao
2011-06-16
打赏
举报
回复
[Quote=引用 11 楼 namelij 的回复:]
全局的?
我单从一点,比如你现在有100000个变量,你都弄成全局的?你的变量名怎么搞,相反如果局部的话,就不存在冲突,或者说冲突会变得很少
static?
这个是根据需要来的,如果你非要那么做,我没办法,不过可以告诉你的是,你的static变量只在程序结束后才会释放...
[/Quote]
头像你是还是你媳妇啊
标哥-iOS攻城狮
2011-06-16
打赏
举报
回复
我想的是:
系统默认的都是auto型的,我想为的是提高效率,因为全局变量的生存期是从程序开始运行到程序运行结束,
在这个过程系统都没有将全局变量释放,所以一直占用内存,如果是局部变量的话,离开了函数内部,就会
被释放,这样占用系统的资源就少了,从而提高了速度。只有当我们需要多次调用函数,且希望这个局部变
量的值始终不被释放,直到程序结束,那么我们一般就会用全局,或者用static来声明。
luciferisnotsatan
2011-06-16
打赏
举报
回复
[Quote=引用 10 楼 louistao 的回复:]
引用 8 楼 namelij 的回复:
引用 7 楼 louistao 的回复:
那手动给局部变量赋值的话,那就相当还执行赋值语句啊?那不是还有效率问题?
手动是因为你需要...
所以,你一般不手动赋值,编译器都当你不需要
那不直接都定义成全局的 或者static 岂不是效率更高?
[/Quote]
这样会有问题。都是全句,大工程没法做了(变量名冲突)
多线程的话,含static局部变量都是不可重入的。
luciferisnotsatan
2011-06-16
打赏
举报
回复
[Quote=引用 11 楼 namelij 的回复:]
全局的?
我单从一点,比如你现在有100000个变量,你都弄成全局的?你的变量名怎么搞,相反如果局部的话,就不存在冲突,或者说冲突会变得很少
static?
这个是根据需要来的,如果你非要那么做,我没办法,不过可以告诉你的是,你的static变量只在程序结束后才会释放...
[/Quote]
就是auto这个关键字(如果没记错的话),auto是默认值,不写都是用这个。
高性能架构探索
2011-06-16
打赏
举报
回复
全局的?
我单从一点,比如你现在有100000个变量,你都弄成全局的?你的变量名怎么搞,相反如果局部的话,就不存在冲突,或者说冲突会变得很少
static?
这个是根据需要来的,如果你非要那么做,我没办法,不过可以告诉你的是,你的static变量只在程序结束后才会释放...
Louistao
2011-06-16
打赏
举报
回复
[Quote=引用 8 楼 namelij 的回复:]
引用 7 楼 louistao 的回复:
那手动给局部变量赋值的话,那就相当还执行赋值语句啊?那不是还有效率问题?
手动是因为你需要...
所以,你一般不手动赋值,编译器都当你不需要
[/Quote]
那不直接都定义成全局的 或者static 岂不是效率更高?
zicheng_lin
2011-06-16
打赏
举报
回复
[Quote=引用 4 楼 namelij 的回复:]
局部变量在栈上吗,如果每次都初始化的话,难免效率有所降低
所以一般只有在全局区得才会默认初始化
[/Quote]
高手正解
高性能架构探索
2011-06-16
打赏
举报
回复
[Quote=引用 7 楼 louistao 的回复:]
那手动给局部变量赋值的话,那就相当还执行赋值语句啊?那不是还有效率问题?
[/Quote]
手动是因为你需要...
所以,你一般不手动赋值,编译器都当你不需要
Louistao
2011-06-16
打赏
举报
回复
那手动给局部变量赋值的话,那就相当还执行赋值语句啊?那不是还有效率问题?
就想叫yoko
2011-06-16
打赏
举报
回复
自动变量是虾米
苍蝇①号
2011-06-16
打赏
举报
回复
也许是出于性能考虑吧,直接移动栈指针sp来得多快啊,要是付初值的话就麻烦了
高性能架构探索
2011-06-16
打赏
举报
回复
局部变量在栈上吗,如果每次都初始化的话,难免效率有所降低
所以一般只有在全局区得才会默认初始化
Louistao
2011-06-16
打赏
举报
回复
是啊 ,为什么它不会自动初始化了?
bdmh
2011-06-16
打赏
举报
回复
全局变量会初始化,其他,自己处理
高性能架构探索
2011-06-16
打赏
举报
回复
全局的才会
软件测试系列之-
自动
化测试Python基础
您观看课程学习后 添加小助手免费领取【超全Python资料包+17本学习电子书】 本课程是
自动
化测试基础内容篇,主要讲解Python的一些基础内容,比如Python的基本数据类型,
变量
,标识符,输入输出,条件判断,数据类型...
java
变量
为什么要
初始化
_为什么要
初始化
变量
呢
因为java规定,
变量
没有
初始化
不能使用,全局
变量
也就是类的属性,java会在编译的时候,
自动
将他们
初始化
,所以可以不什么
变量
初始化
的操作。但是(局部)
变量
必须
初始化
这个在工作中也得到了很好的验证:如果是在类的...
变量
初始化
详解
2、
自动
变量
初始化
静态
变量
存储在程序的静态
变量
区,其
初始化
过程是在程序加载时,由系统
自动
完成的,如下图: 所有的静态
变量
(初值为0的
变量
除外)都是从FLASH中直接加载到RAM中完成
初始化
。如果使用的是ARM的...
C++:哪些
变量
会
自动
初始化
?
在C语言中的全局
变量
和静态
变量
都是会
自动
初始化
为0,堆和栈中的局部
变量
不会
初始化
而拥有不可预测的值。 C++保证了所有对象与对象成员都会
初始化
,但其中基本数据类型的
初始化
还得依赖于构造函数。 下文来详细探讨C...
java static
变量
何时
初始化
_Java 静态
变量
何时
初始化
?
小编典典从请参阅Java静态
变量
方法:它是一个属于类而不属于对象(实例)的
变量
静态
变量
在执行开始时仅
初始化
一次。...尽管
不会
自动
初始化
局部
变量
,但是在使用局部
变量
之前,你无法编译无法
初始化
局部
变量
或...
C++ 语言
64,652
社区成员
250,493
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章