为了评估#if条件,我的预处理器似乎假设未定义的常量为0 .
可以依赖它,还是未定义的常量给出未定义的行为?
我在用户可编辑的标题中选择了#define,因此我随后希望检查定义是否存在以防用户完全删除它们,例如
#if defined MANUF && defined SERIAL && defined MODEL
// All defined OK so do nothing
#else
#error "User is stoopid!"
#endif
Run Code Online (Sandbox Code Playgroud)
这完全没问题,我想知道是否有更好的方法来检查是否有多个定义没有到位...即:
#ifn defined MANUF || defined SERIAL ||.... // note the n in #ifn
Run Code Online (Sandbox Code Playgroud)
或者可能
#if !defined MANUF || !defined SERIAL ||....
Run Code Online (Sandbox Code Playgroud)
删除空#if部分的需要.