zoukankan      html  css  js  c++  java
  • 【C】Re10 共用体、枚举、类型定义

    Union 联合体共用体

    结合体:

    每个成员的内存空间都是独立存在的,互不干涉

    int 成员、double 成员、char 成员 = 4 + 8 + 1 【13字节大小】 取成员字节占用之和作为这个结构体的大小

    联合体:

    每个成员的内存空间在一起共用

    int 成员、double 成员、char 成员 = 8 > 4 > 1 【8字节大小】 取成员最大字节占用类型作为这个共用体的大小

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    union U {
        int a;
        short b;
        char c;
    };
    void test() {
        printf("union U size -> %llu
    ", sizeof(union U));
    
        union U u = { // 共用体只有占用字节大的那个数据类型获取,小类型会被覆盖
                100,
                20,
                30
        };
    
        printf("sum -> %d
    ", u.a + u.b + u.c); // 100 + 100 + 100
    }
    
    void test2() {
        union U u = { // 所有的成员变量最后都会指向最大字节占用的成员属性
                100,
                20,
                30
        };
        u.a = 20;
        printf("sum -> %d
    ", u.a + u.b + u.c);
        u.b = 30;
        printf("sum -> %d
    ", u.a + u.b + u.c);
        u.c = 40;
        printf("sum -> %d
    ", u.a + u.b + u.c);
    }
    
    int main() {
        test2();
        return 0;
    }

    Enumeration 枚举

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    enum Season {
        Spring,
        Summer,
        Autumn,
        Winter
    };
    
    enum boolean {
        false = 0, true = 1
    };
    
    int main() {
    
        enum boolean isTrue = true;
        if (isTrue) {
            printf("yes is true");
        }
    
        return 0;
    }

    TypeDef的使用

    给数据类型起一个别名

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef int integer ; // 基本数据类型别名
    
    struct S {
        int aaa;
        char bbb;
    };
    typedef struct S sss ; // 结构体数据类型别名
    
    void typedefUsage() {
        int aaa = 100;
        integer aa = 100;
    }
    
    typedef int * integerPointer ; // 适合给指针类型起别名
    typedef char * characterPointer ;
    
    int main() {
        return 0;
    }
  • 相关阅读:
    python开发_html_html处理
    python开发_logging_日志处理
    IIS 7 应用程序池自动回收关闭的解决方案
    C#流水号生成汇总(四)
    通过内存盘提高MSMQ的消息吞吐能力
    c#分页工具类,完美实现List分页
    IIS 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral,
    win7电脑遇到端口被占用的情况该如何查看并将其关闭
    如何创建内存盘
    IP地址便捷修改器 V3.5 绿色版
  • 原文地址:https://www.cnblogs.com/mindzone/p/13962901.html
Copyright © 2011-2022 走看看