用const定义的变量是否会占用内存? 我一直在研究是否应该在C++中使用宏或常量。这个问题与此无关,但我意识到的一点是宏不会占用内存(因为它们只是在预处理期间进行文本替换)。但是常数会占用内存吗?我没能找到一个好的答案
用const定义的变量是否会占用内存 就抽象机器而言,是的 至于实际内存:可能是的。不一定。非常量变量也是如此。如果可以用宏替换常量,那么这样的常量应该可以不使用内存 我一直在研究是否应该在C++中使用宏或常量。用const定义的变量是否会占用内存? 我一直在研究是否应该在C++中使用宏或常量。这个问题与此无关,但我意识到的一点是宏不会占用内存(因为它们只是在预处理期间进行文本替换)。但是常数会占用内存吗?我没能找到一个好的答案,c++,C++,用const定义的变量是否会占用内存 就抽象机器而言,是的 至于实际内存:可能是的。不一定。非常量变量也是如此。如果可以用宏替换常量,那么这样的常量应该可以不使用内存 我一直在研究是否应该在C++中使用宏或常量。 不要使用宏。它们不尊重名称空间,并导致名称冲突问题。是。它们就像普通变量一样,但你不能改变它们(除非你扔掉它们的常量)“这取决于”。如果您可以制作一些constexpr,请使用constexpr。如果不能,请使用const。如果不能,则使用非常量。编译器比我们聪明,而且既不会感到痛苦也
不要使用宏。它们不尊重名称空间,并导致名称冲突问题。是。它们就像普通变量一样,但你不能改变它们(除非你扔掉它们的常量)“这取决于”。如果您可以制作一些
constexpr
,请使用constexpr
。如果不能,请使用const
。如果不能,则使用非常量。编译器比我们聪明,而且既不会感到痛苦也不会坠入爱河,所以有人说这是进化的下一步。宏的类型安全性很差(没有),但是constexpr
可以为您提供您渴望的保证。“宏不会占用内存”——嗯。。作为一种思考练习(不是建议):如果您从开始定义宏(名称)长名称[1024]
,然后添加宏(费用);宏观经济学(foo);宏观经济学(fum)代码>,您可能只是将内存需求增加了192 kB。这与你所说的“不要占用内存”一致吗?宏本身在预处理后不存在,即使其效果可能仍然存在?