0
点赞
收藏
分享

微信扫一扫

css的border详解

yundejia 03-27 07:00 阅读 5
c语言

目录

一、联合体

1.1 联合体的定义

1.2 联合体的大小

1.3 联合体的应用

二、枚举

1.1 枚举的定义

1.2 枚举的使用

1.3 枚举的优点


一、联合体

1.1 联合体的定义

1.2 联合体的大小

//求代码输出的结果
#include <stdio.h>
union a
{
    char c[5];
    int i;
};
union b
{
    short c[7];
    int i;
};

int main()
{
    printf("%d\n", sizeof(union a));
    printf("%d\n", sizeof(union b));
    return 0;
}

 

1.3 联合体的应用

由1.2可知,联合体比起结构体可以节省空间。所以试想一下这样一个场景:为商场做一个数据管理,囊括了衣服,食品等多个种类;这里面衣服有自己独特的尺码等信息,食品有独特的保质期等日期。但是它们都具有统一的价格,库存,类型等信息。所以代码可以这样写:

struct item_list
{
    //共有属性
    int item_type;
    double price;
    int stock_num;
    //独有属性
    union
    {
        struct
        {
            char size;
            char material[20];
            char color[20];
        }clothes;
        struct
        {
            char author[20];
            char name[20];
        }book;
        struct
        {
            int date[50];
            char position[50];
        }food;
    }
}

二、枚举

1.1 枚举的定义

1.2 枚举的使用

  • 创建枚举变量
enum Day
{
    Mon,
    Tues,
    Wed,
    Thur,
    Fri,
    Sat,
    Sun
};

int main()
{
    enum Day day = Mon;
    return 0;
}
  • 枚举内成员的赋值
  1. 默认从零开始递增赋值
    enum Day
    {
        Mon,
        Tues,
        Wed,
        Thur,
        Fri,
        Sat,
        Sun
    };
    
    int main()
    {
        printf("%d\n",Mon);
        printf("%d\n", Tues);
        printf("%d\n", Wed);
        printf("%d\n", Thur);
        printf("%d\n", Fri);
        printf("%d\n", Sat);
        printf("%d\n", Sun);
    }

  2. 赋值操作
    enum Day
    {
        Mon,
        Tues,
        Wed =5,
        Thur,
        Fri,
        Sat,
        Sun
    };
    
    int main()
    {
        printf("%d\n",Mon);
        printf("%d\n", Tues);
        printf("%d\n", Wed);
        printf("%d\n", Thur);
        printf("%d\n", Fri);
        printf("%d\n", Sat);
        printf("%d\n", Sun);
    }

  3. 注意:枚举成员均为枚举常量,在枚举外部无法修改 。

1.3 枚举的优点

看完前文,相信有的读者会有这样的疑问:#define也可以定义常量,为什么要用枚举?

  1. 增加代码的可读性:代码明显比#define整洁。
  2. 枚举比起#define自带有类型检查,代码使用更加安全。
  3. 使⽤⽅便,⼀次可以定义多个常量,且自动赋值。
举报

相关推荐

0 条评论