预编译与注释是不一样的概念。代码文本在进行编译时,首先排除了注释。然后根据预编译条件进行筛选排除或选择分支。就象宏,编译前首先替换宏,再进行编译。预编译和宏都是为了更高效率的代码编写和方便修改而存在的,不是为程序运行时准备的。#if #endif 功能相当于if(){};只不过预编译是在代码编译前已经选择,条件选择是在运行时进行选择而已。