下面是引用 i-c0112 于 2011-01-21 01:39 发表的 :
你不是要我判断会变化的数吗...看来我理解力很差
算了…那不重要…反正刚才自己不小心推翻自己的说法了…
目前我是知道为何会编译错误了…原因其实是…逻辑错误…
如果你改成:
复制程式
#define DEBUG 1
#if DEBUG >= 2
#elseif DEBUG >= 1
#endif
这样编译就没问题了…至于为何你原本的写法会错误…?
原因是:
复制程式
//当 DEBUG >= 1 时早就包括 DEBUG >= 2 的内容了…
//所以编译时才会出现错误「extra characters on line」…因为以逻辑上来说这行的确是多余的…
#if DEBUG >= 1
#elseif DEBUG >= 2
#endif
//当 DEBUG >= 2 时并不包括 DEBUG >= 1 的内容了…
//因为有唯一的例外:DEBUG == 1 ,所以逻辑上没错误…
#if DEBUG >= 2
#elseif DEBUG >= 1
#endif
后来又发现上面说法又被推翻了…好像不是逻辑的问题…
如果将原本的写法改成:
复制程式
#define DEBUG 1
#if DEBUG >= 2
#elseif DEBUG == 1
#endif
这样也不会编译错误…目前又只能猜测…
「#if」里比较的内容要大于「#elseif」里比较的内容?