版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mikkles/article/details/78290835
条件编译
- 编译器根据条件的真假决定是否编译相关的代码
常见的条件编译有两种方法:
- 根据宏是否定义: -
#ifdef<macro>
……
#else
……
#endif
-
- 根据宏的值:
#if<macro>
……
#else
……
#endif
结构体
结构体是用户自定义的新数据类型,在结构体中可以包含若干个不通数据类型和不同意义的数据项(也可以相同),从而使这些数据项组合起来反映某一个信息。
定义
struct 结构体名
{
数据类型 成员名1;
数据类型 成员名2;
};
- 大括号中的内容也称为“成员列表”或“域表”
- 其中,每个成员名的命名规则与变量名相同
- 数据类型可以是基本变量类型和数组类型,或者是一个结构体类型
- 用分号“;”作为结束符。整个几个狗的定义也用分号作为结束符
结构体类型中的成员名可以与程序中的变量名相同,二者并不代表同一个对象,编译程序可以自动对他们进行区分。
- 结构体类型是用户自行构造的
- 它由若干不同的基本数据类型的数据构成
它属于C语言的一中数据类型,与整型、实型相当。因此,定义它时不分配空间,只有用它定义变量是才分配空间
不能将一个结构体类型变量作为一个整体加以使用,而只能对结构体类型变量中的各个成员分别引用。
- 如果成员本身又属于一个结构体类型,则要用若干个成员运算符,一级一级的找到最低级成员。只能对最低级的成员进行赋值或存取以及运算。
- 队成员变量可以像普通变量一样进行各种运算
在数组中,数组是不能彼此赋值的,而结构体类型变量可以相互赋值。在c程序中,同一结构体类型的结构体变量之间允许相互赋值,而不同结构体类型的结构体变量之间不允许相互赋值,即使两者包含同样的成员
结构体变量
直接定义变量
struct student{
}xiaoming,xiaomei;
- 独立定义变量
struct student{
};
struct student xiaoming,xiaohua;
- 无结构体名定义变量
通常用于内嵌结构体
struct {
}xiaoming,xiaomei;
- 通过宏方便引用变量
#define STUDENT struct student
STUDENT{
};
STUDENT xiaoming,xiaomei;