//#if 条件编译
//一般用于产品各个版本的语言包
#include<stdio.h>
#include<stdlib.h>
//#都是预处理指令,条件表达式必须在预处理里面
//所以条件表达式必须是宏表达式
//双分支条件编译
//#if 条件表达式
//代码段1
//#else
//代码段2
//#endif
//#endif结束条件编译
//#if,#else和C语言里的if else功能一样,但是时间开销不一样
//if else会编译所有的代码,源码会较长,编译时间会较长
//程序体积大,占用更多内存,运行时间长
//#if,#else只编译符合条件的语句,有效减少被编译的语句,
//缩短源码长度,缩短程序执行时间
//多分支条件编译
//#if 条件表达式1
//代码段1
//#elif 条件表达式2
//代码段2
//#elif 条件表达式3
//代码段3
//#elif 条件表达式4
//代码段4
//#else
//代码段5
//#endif
//检测宏是否定义
//#ifdef 宏定义
//代码段1
//#endif
//#ifdef M 检测M这个宏是否定义,定义了就执行代码段1,没有定义就不执行任何操作
//#ifdef一般用于开启某个功能
//检测宏是否未定义
//#ifndef 宏定义
//代码段1
//#endif
//#ifndef M 检测M这个宏是否未定义,没有定义就执行代码段1,定义就不执行任何操作
//#ifndef一般用于开启某个功能或者include 重包含排错
//例如
//#ifndef OPENS
//#define OPENS
////定义函数或者执行操作,这样就不可能重复的定义函数或者操作了,因为如果已经定义了就不会执行这段代码
//#endif
#define LANGUA 'd'
void main(){
//双分支条件编译
#if LANGUA=='e'//这里的条件表达式是宏表达式
printf("我是字符e,求各位大哥放过小弟一马!\n");
#else
printf("我就是老大,你们想*吗!\n");
#endif
//多分支条件编译
#if LANGUA=='e'//这里的条件表达式是宏表达式
printf("我是字符e,求各位大哥放过小弟一马!\n");
#elif LANGUA=='d'
printf("我是字符d,是你们马大哥的小弟!\n");
#else
printf("我就是老大,你们想*吗!\n");
#endif
//检测宏是否定义
#define M
#ifdef M
system("color 3f");
#endif
//检测宏是否未定义
#ifndef N
system("title nihao");
#endif
system("pause");
}