美文网首页
三、C语言基础

三、C语言基础

作者: 緦菍亭芷 | 来源:发表于2020-04-28 16:18 被阅读0次

    A、struct 结构体

    结构体:里面所有的成员,默认都是public

    struct Student
    {
        /**
         * 结构体:里面所有的成员,默认都是public
         */
        char * name;
        int age;
        char sex;
    };
    //使用
        struct Student student; // 在栈中就定义了
        student.name = "张三";
        student.age = 99;
        student.sex = 'M';
        printf("name:%s, age:%d, sex:%c \n", student.name, student.age, student.sex);
    
    struct Worker
    {
        char * name;
        int age;
        char sex;
    }s1, s2;
    //使用
        s1.name = "李元霸";
        s2.sex = 'M';
        s1.age = 66;
        printf("name:%s, age:%d, sex:%c \n", s1.name, s1.age, s2.sex);
    
    // 定义一个名称位 DOG 的结构体
    typedef struct
    {
        char * dogName;
        int dogAge;
        char dogSex;
    } DOG;
    
    //使用
       DOG dog;
        dog.dogSex;
        dog.dogAge;
        dog.dogName;
    

    B、pragma

    #pragma pack(2); // 内部使用对其的算法,通常情况下,我们不会指定的
    // 这样指定的目的是为了节约内存,内部算法好方便位移
    struct Person
    {
        int number1;
        char number2;
        int number3;
    };
    #pragma pack(); // 还原操作
    

    C、union 共用体/联合体

    举例:有一个这样的需求,很多的扩展成员属性,会被使用,我们要保证最新的值信息,这个使用就可以用到共用体了
    举例:有一个这样的需求:很多扩展的成员属性,会被使用,但是要保证这些属性的 唯一性,这个时候共用体就有用了

    union MyCount
    {
        int countValueInfo;
        int countValueInfo2;
        int countValueInfo3;
        int countValueInfo4;
        int countValueInfo5;
        int countValueInfo6;
        int countValueInfo7;
        int countValueInfo8;
    
        char sex;
        char sex2;
    };
    

    include 并不是等于Java只能的 import java.lang.String
    // 相当于文本替换,相当于把main.h的代码全部粘贴过来
    #include "main.h"
    如果不使用,千万不要这样写,会文本替换的,造成体积增大

    相关文章

      网友评论

          本文标题:三、C语言基础

          本文链接:https://www.haomeiwen.com/subject/dhspwhtx.html