gen*_*gen 3 c++ c-preprocessor preprocessor-directive
对于某些类型的程序,我需要使用恒定的高值来指示某些变量的某些属性。我的意思是让color[i] = 1000000;如果i树中的节点未被探索。但是我经常写错末尾的 0 数,所以我只是想知道这样做是否更好:
#define UNEXPLORED 1000000;
color[i] = UNEXPLORED;
Run Code Online (Sandbox Code Playgroud)
我记得我在某处读到过,避免使用#define 会好得多。这样对吗?你会如何解决这个问题?
对于简单的常量,您可以使用const或 new constexpr:
constexpr unsigned int UNEXPLORED = 1000000;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,使用const和之间没有区别constexpr。但是,标记的“变量”constexpr是在编译时而不是在运行时计算的,并且可以在只接受文字的地方使用。