ios开发-c语言之其他数据类型的学

来源:互联网 发布:最近淘宝网怎么了 编辑:程序博客网 时间:2024/06/05 00:12


今天,我们来学习其他数据类型,共计4中:枚举,预处理指令,文件包含,typedef.

一,枚举:

枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。

格式:

1).一般形式为:enum 枚举名 {枚举元素1,枚举元素2,……};

enum Season {spring, summer, autumn, winter}; 

2)同时定义枚举变量:

enum Season {spring, summer, autumn, winter} s;

3).省略枚举名称,直接定义变量:

enum {spring, summer, autumn, winter} s;

4).赋值:

可以给枚举变量赋枚举常量或者整型值

enum Season {spring, summer, autumn, winter} s;

s= spring;// 等价于 s = 0;

s=3;// 等价于 s = winter;

二.预处理指令:指的是在编译之前先将指令运算,选择性的编译码段,C语言提供的预处理指令主要有:宏定义、文件包含、条件编译.

1).宏定义:一般形式

#define 宏名 字符串

 比如#define ABC 10

右边的字符串也可以省略,比如#define ABC

作用:它的作用是在编译预处理时,将源程序中所有"宏名"替换成右边的"字符串",常用来定义常量。

2).条件编译:在很多情况下,我们希望程序的其中一部分代码只有在满足一定条件时才进行编译,否则不参与编译(只有参与编译的代码最终才能被执行),这就是条件编译

#if 条件1

...code1...

#elif 条件2

...code2...

#else

...code3...

#endif

1> 如果条件1成立,那么编译器就会把#if#elif之间的code1代码编译进去(注意:是编译进去,不是执行,很平时用的if-else是不一样的)

2> 如果条件1不成立、条件2成立,那么编译器就会把#elif #else之间的code2代码编译进去

3> 如果条件1、2都不成立,那么编译器就会把#else#endif之间的code3编译进去

4> 注意,条件编译结束后,要在最后面加一个#endif,不然后果很严重(自己思考一下后果)

5> #if#elif后面的条件一般是判断宏定义而不是判断变量,因为条件编译是在编译之前做的判断,宏定义也是编译之前定义的,而变量是在运行时才产生的、才有使用的意义.

3).文件包含:其实我们早就有接触文件包含这个指令了, 就是#include,它可以将一个文件的全部内容拷贝另一个文件中。

1.第1种形式#include <文件名>

直接到C语言库函数头文件所在的目录中寻找文件

2.第2种形式 #include "文件名"

系统会先在源程序当前目录下寻找,若找不到,再到操作系统的path路径中查找,最后才到C语言库函数头文件所在目录中查找

 4)typedef:

我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)

例如:typedefint Integer,将int定义为新的名字Integer,定义变量的时候可以是Integer a = 0;

总结:

这些其他数据类型要求掌握,尤其是结构体,在以后OC中的学习还会用到.

 

0 0