黑马程序员技术交流社区

标题: 枚举、预处理指令经典总结 [打印本页]

作者: veggiegfei    时间: 2015-9-7 22:55
标题: 枚举、预处理指令经典总结
//-----------------枚举类型
使用场合:在开发中,如果一个变量只有有限的几个取值,可以使用枚举

1)枚举类型
enum <#枚举类型名#>{枚举值1,值2,值3,...};

2)枚举类型的变量

enum <#枚举类型名#>{枚举值1,值2,值3,...} <#枚举变量名#>;

举例:
enum Sex{kMan,kWomen,kYao}sex;
enum Sex s2;
匿名枚举:
enum {kMan,kWomen,kYao}s1;


3)枚举类型变量的使用
1)枚举元素的值
系统默认给枚举变量第一元素赋值为0,后面的元素依次是上一个元素+1

2)给枚举类型变量赋值
isex = man;
printf("%d\n",isex);


//-------------------typedef定义类型
定义:给已经存在的数据类型取一个别名
格式:typedef 原类型 新类型名; //新类型名尽量要大写

5.1、基本数据类型
typedef int  MALATANG;  别名: MALATANG

5.2、用在数组,给数组起别名
typedef int  ARRAY[5];  别名: ARRAY

5.3、给结构体其别名
typedef struct Person P;  别名: P
typedef struct { int screenSize; int ram;} IPHONE; 别名: IPHONE

5.4、给枚举类型起别名
typedef enum Sex{kSexMan,kSexWomen,kSexYao} iSex;  别名: iSex


//--------------------预处理指令的概念
定义:以“#” 开头的一些特殊的指令
作用:
在编译之前做些处理(宏定义,条件编译,文件包含)


常见的预处理指令: 宏

宏:特殊的标示符

宏替换 :在编译之前,在源文件中,所有出现宏名的地方 都用宏代表的字符串 去替换

注意:宏不是语句,不需要分号结束

//------------------文件包含
#include <>    导入系统头文件

#include ""    导入自定义头文件


相当于把.h头文件的声明 copy到当前

//--------------------宏定义
1)无参宏
#define 宏名 宏代表的字符串
#define M 10
#define AREA 3.14*M*M
#define PI 3.14

2)有参宏
#define Mi(y) y*y+3*y   // y 是形参,不分配空间,不需要写类型
#define MAX(a,b) a>b?a:b
#define SUM(a,b) a+b


#undef 宏名  结束此宏定义

习惯全大写或者k开头,使用的时候注意颜色


//------------------------条件编译
当条件满足的时候去编译一段代码
好处:可移植、生成更小的目标文件
格式:

//-------
#if     //必须判断的都是预处理指令

#elif

#else

#endif   //用完了记得要结束当前条件编译


//-------
#ifdef
#endif

//-------
#ifndef
#endif


//预防头文件重复包含
#ifndef __________头文件名_h
#define __________头文件名_h

/*在这里面放上你需要的代码*/

#endif

作者: 靳小龙    时间: 2015-9-7 22:59
谢谢。。。分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2