关于用#if 0 ... #endif 来注释代码...
const int N = 1;
... ...
#if N == 0
代码段_1
#else
代码段_2
#endif
不管const int N为几,都是编译出代码段_1。
如果换成const int N = 1;换成#define N 1 就可以编译出代码段_1,为什么?
[解决办法]
const int N,这样的值是 这是编译期才知道的。
而预处理是在编译期之前的处理的,所以没发知道具体点值。默认就给你0值了。
而#define和#if都是一样在编译期处理的,所以能够正常处理。