python中的enum,c++枚举类型enum
序
总结学习编程的经验和个人知识点,仅供学习之用。
提示:以下是本文的主要内容,主要讨论枚举和类型定义。
第一,枚举。
枚举是C语言的基本数据类型,它使得数据简洁易读。
枚举以下列格式定义:
枚举名称
{
枚举元素1,
枚举元素2。
}枚举变量;
枚举名称是自定义数据类型的名称,枚举变量是枚举名称类型的变量,称为枚举变量。
枚举变量限制变量值的范围,值的范围在花括号里。枚举名称类型的变量是枚举变量,它智能地获取花括号中的任何值,如果赋给枚举变量的值不在上面的{}列表中,则返回错误或警告。枚举元素也是枚举常数,通常大写。
例如,如果一周中有7天没有枚举,则将#define定义为一个整数:
#定义MON 1
#定义岳2
#定义wed 3
#定义THU 4
#定义星期五5
#定义SAT 6
#定义SUN 7
使用枚举实现相同的功能:
枚举日
{
周一=1,TUE,周三,THU,周五,周六,周日
(;
昨天是枚举日;
今天的枚举日;
明天是枚举日;//明天变量的类型是enum DAY。
注意:第一个枚举成员的默认值是整数0,后续枚举成员的值是前一个成员加1。如果第一个枚举成员的值定义为1,则第二个枚举成员的值为2。
二。数据类型说明
Typedef是C语言提供的一个关键字,可以用来命名一个新的类型。
例如:
类型无符号字符字节;
定义此类型后,标识符字节可以用作无符号字符类型的缩写。例如,如下所示
B1,B2;
习惯上在定义中使用大写字母来提醒用户类型名是符号缩写。
1.使用:
定义类型的别名,而不是简单的宏替换。它可以用作同时声明指针类型的多个对象。
例如:
char * pa、Pb;//只声明了指向字符变量的指针和字符变量
//以下是可能的
类型化通道*通道;//一般是大写的。
PCHAR pa、Pb;//有可能同时声明了两个只有字符变量的指针。
//但是
char *pa,* pb
//也是可以的,但是相对来说,以typedef的形式使用并不直观。在需要大量指针的地方,尤其是typedef更快。
2种用途
使用typedef关键字将枚举或结构定义为别名,并使用别名来声明变量。
typedef枚举工作日1
{
土星,
孙迪
安迪,
邓迪,
星期三,
星期四说,
弗雷迪
}工作日;//这里的workday是enum Workday1的别名。
工作日,明天;//今天和明天的变量类型是enumerated workday,即enum Workday1。
类型标签点
{
int x;
int y;
}点;
P1;
如果没有typedef,只能使用以下定义
结构点1p1
3种用途
在typedef中定义独立于平台的类型。
例如,定义一个名为REAL的浮点类型来表示目标平台上精度最高的类型:
类型双精度;
在不支持长双精度的平台2上,修改以下内容:
型双实;
在不支持双精度的平台3上,修改以下内容:
浮点型实时;
如果程序是跨平台的,修改typedef本身就够了,不需要修改其他源代码,而且可以减少写代码时不必要的修改。
4种用途
为复杂声明定义新的简单别名。
摘要
摘要:#define是一个C指令,用来定义各种数据类型的别名。类似于typedef,但有以下区别:
Typedef仅限于为类型定义符号名称。#define不仅可以为类型定义别名,也可以为数字定义别名。
Typedef由编译器解释,#define由预编译器处理。
Typedef一般比**#define**。尤其是有指针的时候,比如:
typedef char * pStr1
# define pstr 2 char *;
pStr1 s1、S2;
pStr2 s3、S4;
上述变量中,s1、s2、s3定义为char *,s4定义为char,不是预期的指针变量。因为#define是一个简单的字符串替换,而typedef为类型指定了一个新名称。
参考资料:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。