Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用const定义的变量是否会占用内存? 我一直在研究是否应该在C++中使用宏或常量。这个问题与此无关,但我意识到的一点是宏不会占用内存(因为它们只是在预处理期间进行文本替换)。但是常数会占用内存吗?我没能找到一个好的答案_C++ - Fatal编程技术网

用const定义的变量是否会占用内存? 我一直在研究是否应该在C++中使用宏或常量。这个问题与此无关,但我意识到的一点是宏不会占用内存(因为它们只是在预处理期间进行文本替换)。但是常数会占用内存吗?我没能找到一个好的答案

用const定义的变量是否会占用内存? 我一直在研究是否应该在C++中使用宏或常量。这个问题与此无关,但我意识到的一点是宏不会占用内存(因为它们只是在预处理期间进行文本替换)。但是常数会占用内存吗?我没能找到一个好的答案,c++,C++,用const定义的变量是否会占用内存 就抽象机器而言,是的 至于实际内存:可能是的。不一定。非常量变量也是如此。如果可以用宏替换常量,那么这样的常量应该可以不使用内存 我一直在研究是否应该在C++中使用宏或常量。 不要使用宏。它们不尊重名称空间,并导致名称冲突问题。是。它们就像普通变量一样,但你不能改变它们(除非你扔掉它们的常量)“这取决于”。如果您可以制作一些constexpr,请使用constexpr。如果不能,请使用const。如果不能,则使用非常量。编译器比我们聪明,而且既不会感到痛苦也

用const定义的变量是否会占用内存

就抽象机器而言,是的

至于实际内存:可能是的。不一定。非常量变量也是如此。如果可以用宏替换常量,那么这样的常量应该可以不使用内存

我一直在研究是否应该在C++中使用宏或常量。
不要使用宏。它们不尊重名称空间,并导致名称冲突问题。

是。它们就像普通变量一样,但你不能改变它们(除非你扔掉它们的常量)“这取决于”。如果您可以制作一些
constexpr
,请使用
constexpr
。如果不能,请使用
const
。如果不能,则使用非常量。编译器比我们聪明,而且既不会感到痛苦也不会坠入爱河,所以有人说这是进化的下一步。宏的类型安全性很差(没有),但是
constexpr
可以为您提供您渴望的保证。“宏不会占用内存”——嗯。。作为一种思考练习(不是建议):如果您从
开始定义宏(名称)长名称[1024]
,然后添加
宏(费用);宏观经济学(foo);宏观经济学(fum),您可能只是将内存需求增加了192 kB。这与你所说的“不要占用内存”一致吗?宏本身在预处理后不存在,即使其效果可能仍然存在?