对于某些类型的程序,我需要使用常量高值来指示某些变量的某些属性。我的意思是让 color[i] = 1000000;
如果树中的 i
节点未被探索。但是我经常把末尾0的个数写错,所以我想知道这样写是不是更好:
#define UNEXPLORED 1000000;
color[i] = UNEXPLORED;
我记得我在某处读到过避免使用#define 会好得多。这样对吗?你会如何解决这个问题?
最佳答案
对于简单常量,您可以使用 const
或新的 constexpr
:
constexpr unsigned int UNEXPLORED = 1000000;
在这种情况下,使用const
和constexpr
没有区别。但是,标记为 constexpr
的“变量”是在编译时而不是在运行时求值的,并且可以在原本只接受文字的地方使用。
关于c++ - 我应该避免在 C++ 中使用#define 吗?为什么,我可以使用哪些替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15218760/