【发布时间】:2017-11-03 08:57:43
【问题描述】:
我一直在使用一个程序,并且一直在尝试节省字节和存储空间。
我的 C 程序中有很多变量,但我想知道是否可以通过在整个程序中使用 don't change 或 const 或 final 的一些变量来减小程序的大小。
所以我的问题是:
- 将静态变量标识为
constant时是否有任何字节保存? - 如果这样做可以保存字节,为什么要保存它们?如果是
constant,程序如何以不同的方式存储变量,为什么这种方式需要更少的存储空间? - 如果通过将变量定义为
constant没有保存字节,那么为什么开发人员首先要以这种方式定义变量?难道我们不能省略const,以防我们以后需要更改变量(尤其是在这样做没有失败的情况下)? - 是否只有一些 IDE/语言可以使用
constant变量保存字节?
感谢您的帮助,非常感谢。
【问题讨论】:
-
如果编译器将其优化为编译时常量,那么是的,它可以节省几个字节的内存,因为它可能不需要变量空间。这要求您在定义时初始化变量,并且您永远不会在任何地方获取变量的地址。但总的来说,不要指望它。
-
至于为什么人们使用
const?好吧,如果您有一个不允许修改的变量,那么当然我们将其设为const。这是一个语义问题,它有助于人们阅读代码,它有助于防止你(或其他人)犯下愚蠢的错误,它甚至可以帮助编译器做出优化决策。 -
C 没有指定
constant。它确实指定了const。 -
根据处理器的不同,常量变量可能最终会成为指令的立即值操作数,这样可以节省少量空间。
标签: c variables constants final