C语言 预处理三(条件编译--#if)

时间:2022-10-21 22:18:59
//#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");
}

 

C语言 预处理三(条件编译--#if)