自动变量为什么不会自动初始化?

Louistao 2011-06-16 05:11:33
RT
...全文
179 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Louistao 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 namelij 的回复:]

全局的?
我单从一点,比如你现在有100000个变量,你都弄成全局的?你的变量名怎么搞,相反如果局部的话,就不存在冲突,或者说冲突会变得很少
static?
这个是根据需要来的,如果你非要那么做,我没办法,不过可以告诉你的是,你的static变量只在程序结束后才会释放...
[/Quote]

头像你是还是你媳妇啊
  • 打赏
  • 举报
回复
我想的是:
系统默认的都是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是默认值,不写都是用这个。
  • 打赏
  • 举报
回复
全局的?
我单从一点,比如你现在有100000个变量,你都弄成全局的?你的变量名怎么搞,相反如果局部的话,就不存在冲突,或者说冲突会变得很少
static?
这个是根据需要来的,如果你非要那么做,我没办法,不过可以告诉你的是,你的static变量只在程序结束后才会释放...
Louistao 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 namelij 的回复:]

引用 7 楼 louistao 的回复:

那手动给局部变量赋值的话,那就相当还执行赋值语句啊?那不是还有效率问题?

手动是因为你需要...
所以,你一般不手动赋值,编译器都当你不需要
[/Quote]

那不直接都定义成全局的 或者static 岂不是效率更高?
zicheng_lin 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 namelij 的回复:]

局部变量在栈上吗,如果每次都初始化的话,难免效率有所降低

所以一般只有在全局区得才会默认初始化
[/Quote]

高手正解
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 louistao 的回复:]

那手动给局部变量赋值的话,那就相当还执行赋值语句啊?那不是还有效率问题?
[/Quote]
手动是因为你需要...
所以,你一般不手动赋值,编译器都当你不需要
Louistao 2011-06-16
  • 打赏
  • 举报
回复
那手动给局部变量赋值的话,那就相当还执行赋值语句啊?那不是还有效率问题?
就想叫yoko 2011-06-16
  • 打赏
  • 举报
回复
自动变量是虾米
苍蝇①号 2011-06-16
  • 打赏
  • 举报
回复
也许是出于性能考虑吧,直接移动栈指针sp来得多快啊,要是付初值的话就麻烦了
  • 打赏
  • 举报
回复
局部变量在栈上吗,如果每次都初始化的话,难免效率有所降低

所以一般只有在全局区得才会默认初始化
Louistao 2011-06-16
  • 打赏
  • 举报
回复
是啊 ,为什么它不会自动初始化了?
bdmh 2011-06-16
  • 打赏
  • 举报
回复
全局变量会初始化,其他,自己处理
  • 打赏
  • 举报
回复
全局的才会

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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