当前位置: 首页 > wzjs >正文

揭西网站建设软件工程管理系统

揭西网站建设,软件工程管理系统,建设部造价咨询企业网站,wordpress 下载类型内容提要 构造类型 枚举类型typedef 构造类型 枚举类型 建议:如果定义不相干的常量,使用宏定义(符号常量):如果需要定义一组相关的常量,如月份 0~11,星期 0~6 ,方向 0~3 等,使用…

内容提要

  • 构造类型
    • 枚举类型
    • typedef

构造类型

枚举类型

建议:如果定义不相干的常量,使用宏定义(符号常量):如果需要定义一组相关的常量,如月份 0~11,星期 0~6 ,方向 0~3 等,使用枚举,进行统一管理。以后正式开发中,switch的case后访问的就是枚举中的常量。

定义

我们一般情况下,定义常量使用宏定义(#define 常量名 字符串),宏定义非常适合没有关联关系的常量,但是有时候我们可能需要对一组拥有关联关系的量进行定义,如月份 0~11,星期 0~6 ,方向 0~3 等,那么使用宏定义,就不是很清晰,也不方便管理,同事还回增加代码量,这个时候就需要用到枚举。

枚举的存在就是多个拥有关联关系的常量组合在一起,提高代码的可读性。

说明

枚举定义了一组常量,我们在开发中直接使用这些常量。(常用)

当然枚举类型也可以类似于结构体一样定义变量等操作。(不常用)

枚举常量有默认值,从0开始依次+1:我们可以在定义时指定它的默认值,如果个别没有赋值,可以根据赋值依次+1推导。

特点

定义了一组常量,类似于定义了多个符号常量(宏定义)

提供了代码的可读性。

语法

①定义枚举类型名以后就可以定义该枚举类型的变量(先类型,再变量)。(枚举的成员是常量)

enum 枚举类型名 变量列表;

②在定义枚举类型的同时定义该枚举类型的变量(类型+变量)

enum 枚举类型名{枚举元素列表} 变量列表;

③直接定义枚举变量(变量

enum {枚举元素列表} 变量列表;
案例
#include <stdio.h>void test1()
{// 定义一个枚举类型// 注意:枚举类型名一般首字母大写,主要是跟枚举元素区分enum Week{// 定义枚举元素,元素本质上就是常量,所以命名采用常量的命名规则,大写字母+下划线// SUN,MON,TUE,WED,THU,FRI,SAT     // 此时,这7个常量的值依次是 0,1,2,3,4,5,6SUN = 10,MON,TUE,WED,THU,FRI,SAT   // 此时,这7个常量的值依次是 10,11,12,13,14,15,16};// 1.直接访问枚举元素,适合于switchprintf("%d,%d,%d\n",SUN,WED,SAT); // 10,13,16// 2.定义枚举类型的变量(先定义变量,后赋值)适合于函数传参,也适合于单选按钮的实现enum Week week;week = TUE;     // 不能随便赋值,赋值一定是这个枚举中定义的元素printf("%d\n", week); // 12// 3.定义枚举类型变量的同时赋值(定义变量和赋值同时进行)enum Week week1 = THU;printf("%d\n", week1); // 14enum H{A,B,C  //多个元素用逗号隔开} x,y;// 赋值操作x = B;Y = C;printf("x=%d, y=%d", x, y); // 1,2
}void test2()
{// 定义枚举enum CaiQuan{SHI_TOU,JIAN_DAO,BU};printf("请输入0~2之间的整数:\n0-石头, 1-剪刀, 2-布\n");int number;scanf("%d", &number);switch(number){case SHI_TOU:printf("石头\n");break;case JIAN_DAO:printf("剪刀\n");break;case BU:printf("布\n");break;}
}int main()
{test1();test2();return 0;
}

typedef

  • 说明:给类型重命名,不会影响到类型本身。
  • 作用:给已有的类型起别名。
  • 格式
typedef 已有类型名 新类型名;
  • 使用
int main()
{// 方式1:先定义数据类型,再重命名// 定义一个结构体struct Student{int id;char *namr;char sex;int age;};// 类型重命名typedef struct Student Stu; // 将struct Student重命名为Stu// 使用新类型名// 定义结构体类型Stu stu = {1,"张三",'W',21};printf("%d,%s,%c,%d\n",stu.id, stu.name, stu.sex, stu.age);Stu *p = &stu;printf("%d,%s,%c,%d\n",p -> id, p -> name, p -> sex, p -> age);// 方式2:定义数据类型的同时重命名typedef struct PersonInfo{int a;double b;} Per; // 新数据类型名(结构体类型别名)// 定义变量Per per = {2,, 4.5};printf("%d,%.2f\n", per.a, per.b);// 定义指针Per *p1 = &per;printf("%d,%.2f\n", p1 -> a, p1 -> b); // -> 结构体成员访问符return 0;
}
  • 应用场景:

    • 数据类型复杂(结构体、共用体、枚举、结构体指针、无符号的长整型)时使用

      在这里插入图片描述

    • 为了跨平台的兼容性,例如:

      1. size_t:类型重名后的数据类型:typedef unsigned long size t;
      2. unit_16:类型重命名后的数据类型。
  • 案例:

struct Student
{int age;char* name;double score;int arr[3];
};
typedef struct Student  Stu_t;// 数据类型重命名
typedef Stu_t* pStu_t;// 结构体指针重命名
void test1()
{Stu_t s1 = {23, "zhangsan", 23.33, {11, 22, 33}};printf("%d, %s, %f, %d\n", s1.age, s1.name, s1.score, s1.arr[0]);//Stu_t *p = &s1;Stu_t*  p;p = &s1;pStu_t p2;p2 = p;printf("%d, %s, %f, %d\n", p2->age, p2->name, p2->score, p2>arr[0]);}
int main()
{test1();return 0;
}
http://www.dtcms.com/wzjs/797380.html

相关文章:

  • 网站开发项目的需求分析商城网站标题
  • 网站做直播番禺学校网站建设建议
  • seo优化网站多少钱南沙网站建设价格
  • 网站改版301深圳市住房和建设局电话
  • 滁州建设网站公司网站模板带有sql后台下载
  • 合肥 网站建设seo 优化
  • 食品网站建设风格防静电产品东莞网站建设技术支持
  • 做推广网站多少钱全网营销推广 好做吗
  • 网站优化排名软件推广品牌设计书籍
  • 深圳常平网站建设制作公司网站空间买卖
  • 只想怎样建设自己的销售网站商洛市城乡建设局网站
  • 如何网站切换房屋模拟装修软件
  • 哪个网站推广做的好保险网站推荐
  • 网站建设实施步骤深圳网站的优化公司哪家好
  • 做数模必逛的网站校园网门户网站建设
  • php p2p网站建设泰安九五兴昇网络科技
  • 高端网站建设公司怎么做推广网站建设公司违法
  • 珠海市建设工程交易网优化网站目录结构
  • 网站定制开发哪家做的好网站的收录
  • 云南做网站报价查看网站dns
  • 犀牛云做网站多少钱网站快照不更新了
  • 公司网站建设应注意哪些安徽一方建设招标网站
  • 深圳沙井做公司网站微网站模板怎么做
  • 网站专题二级页怎么做北京建网站需要多少钱
  • 扁平化设计风格网站wordpress地址和找点地址
  • 网站建设 服务内容微信怎么做网站推广
  • 湛江做网站seo的济南快速网站排名
  • 建设公司网站需要多少天寻找外贸客户的网站
  • 有哪些网站建设方案西安专业做网站的公司哪家好
  • 直播做ppt的网站邯郸手机网站建设费用