C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 静态变量是否会耗尽内存?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
基于 this的讨论,我想知道函数作用域静态变量是否总是使用内存,或者是否允许编译器对其进行优化.为了说明这个问题,假设一个这样的函数

void f() {
   static const int i = 3;
   int j = i + 1;
   printf("%d",j);
}

编译器很可能内联i的值,并且可能在编译时进行计算3 1.由于这是使用i值的唯一位置,因此不需要分配任何静态内存.那么编译器是允许优化静态的,还是标准要求任何静态变量都分配了内存?

解决方法

是.根据标准:

1.9程序执行

……脚注说:

这一切意味着只要可观察行为相同,编译器就可以对代码执行任何操作.由于您没有获取静态const的地址,因此编译器可以将值优化为常量积分表达式.

大佬总结

以上是大佬教程为你收集整理的c – 静态变量是否会耗尽内存?全部内容,希望文章能够帮你解决c – 静态变量是否会耗尽内存?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。