黑马程序员技术交流社区
标题:
条件编译
[打印本页]
作者:
1213842165
时间:
2015-11-13 22:42
标题:
条件编译
/*条件编译*/
#include <stdio.h>
#define kA 0
int a=5;
/*
3.条件编译一般跟宏定义配合使用,防止重复包含及交叉包含
*/
#include "A.h"
//等效于下面代码
//#ifndef k_A_h
//#define k_A_h
//int add();
//#endif
#include "A.h"
//等效于下面代码
//#ifndef k_A_h
//#define k_A_h
//int add();
//#endif
int main(){
/*
1.条件编译不能访问需要编译后才能执行的代码.
//int a=5;
#if (a==0)
printf("a====\n");
#else
printf("====\n");
#endif
*/
/*
2.条件编译不需要用大括号,所以必须加上结束标识,否则涵盖下面的所有代码
#if (kA==0)
printf("a====\n");
#else
printf("====\n");
*/
/*
通用用法
//#if (kA==5)
// printf("kA===5\n");
#if (kA==5)
printf("kA===5\n");
#elif (kA==3)
printf("kA===3\n");
#else
printf("else===\n");
//结束条件编译 只对离其最近一个#if起作用
#endif
*/
/*
与宏定义相关的用法
#ifdef kA//kA这个宏有定义
printf("ifdef kA===\n");
#endif
#ifndef kA//kA这个宏没有定义
printf("ifndef kA===\n");
#endif
*/
/*
用普通方式实现宏定义的判断
#if defined(kA)//==#ifdef kA
printf("defined kA===\n");
#endif
#if !defined(kA)//==#ifndef kA
printf("!defined kA===\n");
#endif
*/
return 0;
}
int add(){
return 2;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2