//#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)的更多相关文章

  1. 面试问题4:C语言预处理包括哪些

    问题描述:C语言 预处理包括哪些操作 C语言的三种预处理包括:宏定义(#define).文件包含(#include).条件编译(#if.#else.#endif). 对于宏定义的介绍: 宏定义必须写在 ...

  2. 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出

    [源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 ...

  3. C 语言预处理

    在嵌入式系统编程中,不管是内核的驱动程序还是应用程序的编写,都涉及到大量的预处理与条件编译,这样做的好处主要体现在代码的移植性强以及代码的修改方便等特性,因此引入了预处理与条件编译的概念.在C语言的程 ...

  4. C语言预处理指令的初步了解

    所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理是C语言的一个重要功能,它由预处理程序负责完成.当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分 ...

  5. C 语言入门第八章--C语言预处理命令

    例如:#include ,这种以#号开头的命令称为预处理命令. ===C语言宏定义(#define的用法)==== #define 叫做宏定义命令,它也是C语言预处理命令的一种.所谓宏定义,就是用一个 ...

  6. C语言预处理理论2

    C语言预处理理论1.头文件包含(1)#include <>和#include ""区别:<>专门用来包含系统提供的头文件(就是系统自带的,不是程序员自己写的 ...

  7. C语言预处理编译链接各个阶段错误,分阶段的说一下

    C语言预处理编译链接各个阶段错误,分阶段的说一下 C语言预处理编译链接各个阶段错误,分阶段的说一下比如指针异常,数组下标越界什么的    我来答 1个回答 #热议# 你觉得这辈子有希望看到996消失 ...

  8. C语言预处理运算符

    转自C语言预处理运算符 预处理还需要运算符?有没有搞错? ^_^, 没有搞错,预处理是有运算符,而且还不止一个: #(单井号)    -- 字符串化运算符. ##(双井号 )-- 连接运算符 #@   ...

  9. Swift语言指南(三)--语言基础之整数和浮点数

    原文:Swift语言指南(三)--语言基础之整数和浮点数 整数 整数指没有小数的整数,如42,-23.整数可以是有符号的(正数,零,负数),也可以是无符号的(正数,零). Swift提供了8,16,3 ...

随机推荐

  1. 《C程序设计的抽象思维》2.10编程练习(未完)

    本文地址:http://www.cnblogs.com/archimedes/p/programming-abstractions-in-c-2.html,转载请注明源地址. 2.按照规定求圆柱的表面 ...

  2. Objective-C中@encode的使用

    今天看Mansonry的代码时,碰到一个生僻的关键字(也许只是自己没用过).:-) @encode  => 将给定类型编码为内部表示的字符串. 为了方便自己查阅,顺便也写个小例子,贴在这里,实践 ...

  3. Python学习三---序列、列表、元组

    一.序列 1.1.序列概念 pythn中最基本的数据结构是序列(sequence). 序列中每个元素被分配一个序号-元素索引,第一个索引是0,第二个是1,以此类推.类似JAVA中数组和集合中的下标. ...

  4. UVa 109 - SCUD Busters(凸包计算)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

  5. animation of android (2)

    android Interpolator 首先是android系统提供的变换方式: 这些方式将转载一篇文章: 转: http://www.cnblogs.com/mengdd/p/3346003.ht ...

  6. mysql中FIND_IN_SET的使用方法

    在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_ ...

  7. 你连Bug都抓不住,还谈什么参与感?

    林子大了什么鸟都有,APP市场也是这样.举个例子,有段时期图片社交井喷式发展,各类图片社交APP一时充斥着市场.各种或重视图片加工或主打社交元素的APP“来得快去得快”.“你方唱罢我登场”,这些短命A ...

  8. C语言指针学习(续)

    五.数组和指针的关系 int array[10] = {0,1,2,3,4,5,6,7,8,9},value; ... ... value = array[0];//也可以写成 value = *ar ...

  9. 用mciSendString做音乐播放器

    音乐操作类 public class clsMCI { public clsMCI() { // // TODO: 在此处添加构造函数逻辑 // } //定义API函数使用的字符串变量 [Marsha ...

  10. IE6-9中tbody的innerHTML不能赋值bug

    IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 <!DOCTYPE html> <html> <head> <meta charset= ...