Avoid variable names with “no” in them. For example: instead of using NODEBUG, just use DEBUG and negate it with the language. The reason is that sometimes you will need to negate the variable, and it will be hard to understand; sometimes it may become quite ridiculous: #ifndef NODEBUG