十五、宏、条件编译和枚举

1.宏

①无参宏 #define MAX 99

②宏预编译的时进行替换

③纯大写定义宏

④宏的主要功能是替换

⑤宏的使用能让程序更加容易修改

2.条件编译

①作用:按不同的条件,编译不同的代码

②通常使用条件编译来调试代码.

③条件编译在编译器进行,根据条件不同,编译不同的源代码

④if是运行期,根据条件是否满足,执行相应的代码。

⑤条件编译的三种形式:

形式一:

#ifdef 标识符
     代码段1
     #else
     代码段2

#endif

如果 标识符被#define过,编译器编译代码段1,否则编译代码段2

形式二:

#ifndef 标识符
     代码段1
     #else
     代码段2

#endif

如果 标识符未被#define过,编译器编译代码段1,否则编译代码段2

形式三:

#if 常量表达式
     代码段1
     #else
     代码段2

#endif

3.枚举类型

①枚举属于构造类型

②enum 枚举名{枚举值表};

③枚举值表中罗列出所有可能的结果

④枚举在程序中广泛使用,通常用于switch...case语句

⑤默认值从0开始。支持typedef

⑥核心作用:将人能看懂的标识符与计算机看懂得数字建立对应的关系

⑦enum season{

spring,

summer,

autumn,

winter

}

⑧给初值就是初值,不给就是根据上面的自增

时间: 2024-10-11 06:02:11

十五、宏、条件编译和枚举的相关文章

深圳宏旺半导体,十五年国产存储芯片的研发坚持,自主品牌ICMAX亮相

2019年,是宏旺半导体成立的第十五年,宏旺半导体一步一个脚印,以技术为先导,以科技为支撑,从电脑移动存储产品起家,发展至今成立存储芯片国产自主品牌ICMAX,这是质的飞跃.回首十五年的奋斗足迹,宏旺半导体成立仅仅3年时间,便成长为深圳市最大的U盘生产工厂之一,2013年,宏旺半导体强势推出嵌入式存储产品,准确把握住了时代的脉搏,成为中国大陆MCP芯片第一品牌和唯一供应商.在今后几年,一直保持飞速增长的宏旺半导体ICMAX自主研发的eMCP.eMMC.LPDDR 等芯片通过MTK.展讯等原厂验证

苹果新的编程语言 Swift 语言进阶(十五)--协议

协议定义了适合某个特定任务或功能需要的方法.属性和其它需求的一个蓝图.协议本身不提供这些需求的实现,它只是描述了一个任务或功能实现的蓝图.       协议与java 语言中的接口定义类似,都是描述了一个实现可以干什么,而本身却不包含任何实现.与接口不同的是swift语言定义的协议可以被一个类.结构.或者枚举采用,来提供协议规定需求的实际实现,而java 语言的接口只能被类实现.   ... 请麻烦转移到此位置阅读,谢谢! 苹果新的编程语言 Swift 语言进阶(十五)--协议 苹果新的编程语言

iOS 进阶 第十五天(0417)

0417 创建UICollectionViewCell的Xib方法如下图 枚举定义导航跳转方式 js跳转到网页指定锚点 如下图所示: iOS 进阶 第十五天(0417)

C++ Primer Plus学习:第十五章

第十五章 友元.异常和其他 友元 友元类 表 0-1 class Tv { public: friend class Remote; } Remote类可以使用Tv的数据成员,Remote类在Tv类后定义 . 友元成员函数 表 0-2 class Tv; //前向声明 class Remote { public: void chanup(Tv &t); } class Tv { public: friend void Remote::set_chan(Tv& t, int c); } 异常

十五、mysql 分区之 分区管理

1.mysql分区处理分区字段NULL值的方式 1.range分区null被当作最小值处理 2.list分区null值必须被枚举出来,否则将出错 3.hash/key分区 null值当作0处理 2.RANGE && LIST 分区管理 1.删除分区 alter table emp drop partition p0; //删除emp的p0分区,注意也会同时删除该分区的数据 2.增加分区 alter table emp add partition (partition p5 values l

QT开发(二十五)——QT模板库

QT开发(二十五)--QT模板库 一.QTL模板库简介 QT模板库(QT Template Library 简称QTL)是一套提供对象容器的模板. QTL提供了对象的链表.对象的矢量(动态数组).从一个类型到另一个类型的映射(或称为字典)和相关的迭代器和算法.容器是包含和管理其它对象的一个对象,并且提供迭代器对被包含的对象进行访问. 1.QT容器类简介 容器是能够在内存中存储其他特定类型的对象的对象,一般是通用的模板类.QT提供了自己的一套容器类,即在QT的应用程序中,可以使用标准C++的STL

S3C2416裸机开发系列十五_GCC下uCOS的移植(1)

S3C2416裸机开发系列十五 GCC下uCOS的移植(1) 象棋小子    1048272975 操作系统是用来管理系统硬件.软件及数据资源,控制程序运行,并为其它应用软件提供支持的一种系统软件.根据不同的种类,又可分为实时操作系统.桌面操作系统.服务器操作系统等.对于一些小型的应用,对系统实时性要求高,硬件资源有限等的情况下,应尽量避免使用复杂庞大的操作系统(如Linux),使用小型的实时操作系统(如uCOS)更能满足应用的需求.笔者此处就uCOS-II的移植作一个简单的介绍. 1. 代码准

Swift 学习笔记十五:扩展

扩展就是向一个已有的类.结构体或枚举类型添加新功能(functionality).扩展和 Objective-C 中的分类(categories)类似.(不过与Objective-C不同的是,Swift 的扩展没有名字.) Swift 中的扩展可以: 1.添加计算型属性和计算静态属性 2.定义实例方法和类型方法 3.提供新的构造器 4.定义下标 5.定义和使用新的嵌套类型 6.使一个已有类型符合某个协议 一.扩展属性,构造器,方法 class Human{ var name:String? va

算法导论第十五章动态规划

概述: 1.动态规划是通过组合子问题的解而解决原问题的. 2.动态规划适用于子问题不是独立的情况,也就是各子问题的包含公共的子子问题. 3.动态规划对每个子问题只求解一次,将其结果保存在一张表中. 4.动态规划的设计步骤:a.描述最优解的结构b.递归定义最优解的值c.按自底向上的方式计算最优觖的值d.由计算出的结构构造一个最优解 15.1钢条切割 钢条切割问题:给定定长的钢条和价格表,求切割方案,使得收益最大.如果n英寸的钢条的价格足够大,则不需要切割. 代码如下: //朴素递归求解钢条切割收益

第十五届中国研究生数学建模竞赛之机场登机口调度

第十五届中国研究生数学建模竞赛之机场登机口调度 1.问题描述 具体题目文件见:https://github.com/luoshui3000/Airport_gate_scheduling 问题一:本题只考虑航班-登机口分配.作为分析新建卫星厅对航班影响问题的第一步,首先要建立数学优化模型,尽可能多地分配航班到合适的登机口,并且在此基础上最小化被使用登机口的数量.本问题不需要考虑中转旅客的换乘,但要求把建立的数学模型进行编程,求最优解. 2.使用方法 我们根据登机口和航班的宽窄机和航线性质,将所有