gpt4 book ai didi

c++ - 我应该为代码中的重复文字定义常量吗?

转载 作者:行者123 更新时间:2023-11-27 22:53:19 31 4
gpt4 key购买 nike

我有一个这样的示例代码,其中文字 1 重复了几次。

foo(x - 1);
y = z + 1;
bar[1] = y;

我是否应该定义一个常量 ONE,并用它替换文字?

constexpr int ONE = 1;
foo(x - ONE);
y = z + ONE;
bar[ONE] = y;

这种替换是否会提高性能和/或减少机器代码大小以降低代码可读性?文字的重复次数会改变答案吗?

最佳答案

它不会给您带来任何性能/内存改进。但是,您应该尽量保持代码不受 magical numbers 的影响。 .因此,如果您的代码中有多个地方重复常量,并且在所有这些地方这个常量从逻辑的角度来看都是相同的,那么最好将其设为命名常量。

示例:

const int numberOfParticles = 10; //This is just an example, it's better not to use global variables.

void processParticlesPair(int i, int j) {
for (int iteration = 0; iteration < 10; ++iteration) {
//note, that I didn't replace "10" in the line above, because it is not a numberOrParticles,
//but a number of iterations, so it is a different constant from a logical point of view.


//Do stuff
}
}

void displayParticles() {
for (int i = 0; i < numberOfParticles; ++i) {
for (int j = 0; j < numberOfParticles; ++j) {
if (i != j) {
processParticlesPair(i, j);
}
}
}
}

关于c++ - 我应该为代码中的重复文字定义常量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35453569/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com