接上一篇,继续总结C语言剩下的几个关键字,个人感觉用好会大大提到代码的规范性和可读性。
1> struct关键字
struct是个神奇的关键字,它将一些相关的数据打包一个整体,方便使用。
上面这段话是在网上找的,用以说明struct的神奇。
struct结构体通常跟typedef关键字一起使用,下面说明。
2> enum关键字
1、 枚举类型的使用方法:
<span style="white-space:pre"> </span>enum enum_type_nama
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>ENUM_CONST_1,
<span style="white-space:pre"> </span>ENUM_CONST_2,
<span style="white-space:pre"> </span> ……
<span style="white-space:pre"> </span> ENUM_CONST_n
<span style="white-space:pre"> </span>}enum_variable_name;
注意:enum_type_name是自定义的一种数据类型名,而enum_variable_name为enum_type_name类型的一个变量,也就是我们说的枚举变量。
2、 枚举与#define宏的区别
下面在看看枚举与#define宏的区别:
1)#define宏常量是在预编译阶段进行简单替换的。枚举常量则是在编译的时候确定其值。
2)一般在编译器里,可以调试枚举常量,但不能调试宏常量。
3)枚举可以一次定义大量相关的常量,而#define宏一次只能定义一个。
3> 伟大的缝纫师——typedef关键字
typedef是给一个已经存在的数据类型取一个别名,而非定义一个新的数据类型。
看看实际的应用吧,例如:
<span style="white-space:pre"> </span>typedef struct student
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>// code
<span style="white-space:pre"> </span>}Stu_st, *Stu_pst;
A),struct student stu1; 和Stu_st *stu2;没有区别
B),struct student *stu2; 和Stu_pst stu2; 和Stu_st *stu2;没有区别
解释:“struct student {/*code*/}”看成一个整体,typedef就是给“struct student {/*code*/}”取了个别名叫“Stu_st”;同时给“structstudent { /*code*/} *”取了个别名叫“Stu_pst”。
这些关键字我们用的也不是太好,所以只能说一些基本的概念,具体的应用等我熟练掌握了在总结吧!