本帖最后由 736010695 于 2014-11-20 19:44 编辑
#include <stdio.h>
#define A 10 #define B
int main() { /*知识回顾:if语句的写法 int a = 10; if(a==10) { printf("a=%d\n", a); } else if(a==5) { printf("a=%d\n",a); } else { printf("其他值\n"); } */
#if(A==10)//这里括号可写可不写 //检验前面是否定义了A==0,条件编译是编译前执行,所以定义a的值时用宏定义(宏定义和条件编译都是在编译前执行 printf("A=10\n"); #elif(a==f)//如果上面条件不符合则检验这句代码是否成立 printf("A=5\n"); #else//如果上面条件都不成立则执行这句代码 printf("其他值\n"); #endif /*这句一定要写,不然会在运行完正确条件后面的代码后把下面所有的东西删掉, 结果导致main函数的return和大括号}都被删掉,编译器报错*/
//利用条件编译判断一个宏在前面是否定义过 #ifdef A printf("已经定义\n"); #endif
#ifndef B printf("没有定义\n");//由于上面宏定义已经定义过B,所以这句不输出 #endif
return 0; }
|