linux学习-条件编译和结构体

来源:互联网 发布:php 统计数组重复次数 编辑:程序博客网 时间:2024/05/29 14:27

条件编译

- 编译器根据条件的真假决定是否编译相关的代码

常见的条件编译有两种方法:

  • 根据宏是否定义:
  • -
#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 studentSTUDENT{};STUDENT xiaoming,xiaomei;
阅读全文
0 0
原创粉丝点击