• C语言-1.结构体,2.枚举,3.typedef,4.预处理指令的概念,5.条件编译


    1. 结构体数组
      定义:由若干个相同类型的结构体变量组成的有序的集合。
      定义格式:
        1) 定义结构体的同时定义结构体数组
        struct Car{
          int lunzi;
          int speed;
        }cars[5];

        2) 使用匿名结构体定义数组
        struct {
          int lunzi;
          int speed;
        }cars[5];

      3)先定义结构体,再定义结构体数组
        struct Car cars[5];

      初始化:
       1) 定义结构体数组的同时进行初始化
        struct Car{
          int lunzi;
          int speed;
          char name[20];
        }cars[2]={{2,50},{80,300}};

       2) 匿名
        struct {
          int lunzi;
          int speed;
          int speed;
        }cars[2]={{2,50},{80,300}};

      3) 定义结构体数组初始化
        struct Car cars[2]={{2,50},{80,300}};


      通过数组角标整体去初始化 cars[1]=(struct Car){6,100};

      注意:如果结构体成员是字符数组类型时
      使用: strcpy, scanf 函数进行赋值

     2.枚举

      使用场合:在开发中,如果一个变量只有有限的几个取值,可以使用枚举

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

      2)枚举类型的变量
        enum SEX{man,women,yao}isex;
        enum {man,women,yao}s1;
        enum SEX s2;

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

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

    3.typedef

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

      格式: typedef 源类型名 新类型名

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

      2、用在数组,给数组起别名
        typedef int ARRAY[5]; 别名: ARRAY
        
      3、给结构体其别名
        typedef struct Person P; 别名: P
        typedef struct { int screenSize; int ram;} IPHONE; 别名: IPHONE

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

      5. 给函数指针起别名
        typedef int (*FUN)(int,int); 别名:FUN

    4.预处理指令

      定义:以“#” 开头的一些特殊的指令

      作用: 在编译之前做些处理(宏展开,条件编译,文件包含)

      常见的预处理指令: 宏

      宏:特殊的标示符
      宏替换 :在编译之前,在源文件中,所有出现宏名的地方 都用宏代表的字符串 去替换
      注意:宏不是语句,不需要分号结束

      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

    5.条件编译

      当条件满足的时候去编译一段代码 

      好处:可移植、生成更小的目标文件
      格式:
        #if

        #elif

        #else

        #endif

  • 相关阅读:
    1293E. Xenon's Attack on the Gangs (树形DP)
    二分check的妙用
    Educational Codeforces Round 80 (CF
    CodeForces Goodbye2019 E.Divide Points (构造)
    POJ 1061 (拓展欧几里得+求最小正整数解)
    1238D
    关于Mysql用户的相关操作
    JAVA类的符号引用的理解
    关于tomcat的路径等基础问题
    Java 方法中,参数的装配顺序
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/5094094.html
Copyright © 2020-2023  润新知