百度
360搜索
搜狗搜索

typedef enum什么意思,c语言中,什么是枚举类型(enum),给个例子?详细介绍

本文目录一览: 数据结构(C语言)中 这句何意? typedef enum{0,1} bool;

typedef在计算机编程语言中用来为复杂的声明定义简单的别名。
你这里typedef enum{0,1} bool;就是对枚举型类型enum{0,1}定义别名为bool,
定义之后,你若想定义一个enum{0,1}类型的枚举变量,则可以简单的bool a;即可。
希望对你有帮助。

C语言中的“typedef struct”是什么意思?

struct是结构体的关键字,是用来定义结构体的,而typedef是定义自定义类型的关键字。可以定义自定义类型。
typedef enum表示定义了一个枚举型的数据结构,typedef struct也是定义了一种数据结构,这个数据结构包含多个数据项。
typedef的用途
typedef可以看作是type define 的缩写,意思就是定义类型,也可以说它是给已有的类型重新定义一个新的别名,而不是产生一个新的类型
typedef和宏定义有些类似,但是又有不同:
1.typedef给出的符号名称仅限于对类型,而不是对值,并不是简单的宏替换,可以用作同时声明指针型的多个对象
2.可以使程序参数化,提高程序的移植性
3.可以使表达式更加简洁,如上面的结构体的定义
4.能够为其它复杂的声明定义一个简单的别名

typedef enum { FALSE , TRUE } bool ; 求解意思

声明了一个枚举类型一般形式为:
enum [枚举名] {枚举元素列表};
也可以声明没有枚举名的枚举类型,就是像你给的那种,后边的bool是枚举类型的变量,可以对其进行赋值,不过只能用FALSE或者TRUE进行赋值。
这里具体来说,FALSE对应于0,TRUE对应于1。
当定义一个变量比如bool a时,如果赋值a = 0,即代表FALSE;如赋值a=1,即代表TRUE。
typedef 相当于一种重命名
typedef int abc;
当你写了这句话,你就可以把abc当int来用了;
main()
{
abc x=1, y=2;
printf("%d %d", x, y);
}
这个程序是对的,x和y的类型就是int,输出的结果是1 2
而 typedef enum { FALSE , TRUE } bool ; 这句话就是告诉你bool类型的变量可以取的值就是两种
FALSE(假)或TRUE(真),也就是>= <= ==这类运算符的运算结果
然后如果把bool用在自定义函数里面
bool f()
{
return TRUE; /* 等价于return 1; */
}
这个函数的返回值只能是TRUE或FALSE
-----以下为2021-12-19编辑-----
enum { FALSE, TRUE } 可以理解为你自己创建了一个新类型,这个类型的变量有两种取值,一个是FALSE,一个是TRUE。
然后FALSE本身是可以在大括号里赋一个整型值的,比如enum { FALSE = 1, TRUE = 3 }。如果是这样赋值的话,那你新创建的类型就可以有两种取值,FALSE(对应整型的1), TRUE(对应整型的3)。
然而你写的是enum { FALSE, TRUE } ,根据默认的规则,FALSE 会被赋值为0, TRUE被赋值为FALSE+1(在这里 TRUE 就是1)。
现在你又写下了
typedef enum { FALSE , TRUE } bool ;
那么在这一句话中,你同时创造了一个新类型,同时给它取一个名字叫bool。
那么你就可以这样创建一个变量
bool a;
a的类型名是bool
你可以这样给它赋值 a = TRUE;
同时 a 也等价于整型的 1。
抱歉水平有限,无法说得更清楚
更多知识可以参考C enum(枚举) | 菜鸟教程 (runoob.com)

typedef与数组结合的基础知识。

enum { FALSE, TRUE }表示枚举类型,值只能是FALSE也就是0, TRUE也就是1。
由于C语言里没有bool(布尔)类型,这里就用枚举类型代替了bool型。bool类型就是一种逻辑类型要么是true要么是false。
typedef enum { FALSE, TRUE } bool;的意思就是把enum { FALSE, TRUE }定义为bool;
则 enum{ FALSE, TRUE } argument 就是 bool argument ,只能有两种取值。
0 . typedef enum { FALSE, TRUE } bool 是什么意思?
正像你所理解的 “我记得是typedef int aaa;就是让aaa代表int这个形式”,那么
typedef enum { FALSE, TRUE } bool;,就是 让 bool 代表enum { FALSE, TRUE } ,你依旧可以 把 enum { FALSE, TRUE } 当成是 int。
总体的意思就是 “定义一个bool这个名字,代表 enum { FALSE, TRUE } 这种类型的变量“。
1. enum { FALSE, TRUE } 是什么?
这个是基础知识,叫做枚举类型。有点像struct { FALSE, TRUE } ***; 结构体类型。具体 你应该看看书,或者参考手册。
2. 用typedef 定义数组举例。
例如:
typedef int a[10] array; //这个 array 就是代表 int a[10],整形数组。
array b; // b就是一个容纳10个元素的整形数组。
3. bool 是啥意思?
typedef enum { FALSE, TRUE } bool; 这个里面,bool就是名字,你可以把bool改成 suibian, 这里用bool 是为了便于理解或者说是一种规范。
希望我的回答能给你带来帮助!

enum是什么意思

Enum是一个缩写,来自英文单词"enumeration",它是"enumerate"的名词形式。Enum在计算机科学中常被用作一种数据类型,用于定义一组有限的命名值。
Enum类型的定义可以包含一系列常量,每个常量都有一个名称和一个与之关联的值。这些常量是预定义的,不能被修改或新增。Enum类型的常量通常用于表示一组相关的离散选项或状态。
Enum类型的使用可以帮助代码更具可读性和可维护性。通过使用Enum类型,我们可以明确指定一个变量只能取特定的几个值,避免了使用普通整数或字符串类型可能导致的错误。
在许多编程语言中,Enum类型的定义通常以关键字"enum"开始,然后列出常量的名称和对应的值。例如,在Java中,可以使用以下方式定义一个表示颜色的Enum类型:
在这个例子中,Color是一个Enum类型,包含了三个常量:RED、GREEN和BLUE。每个常量都有一个与之关联的值,表示对应的颜色。Enum类型还可以定义自己的方法,以增加额外的功能。在这个例子中,Color类型定义了一个getValue()方法,用于获取与颜色关联的值。
通过使用Enum类型,我们可以更清晰地表示颜色的选项,并且可以通过调用getValue()方法获取颜色的值。
总之,Enum是一种用于定义一组有限命名值的数据类型。它可以帮助我们编写更具可读性和可维护性的代码,并且在许多编程语言中都有广泛的应用。

C语言笔记(五)----struct,enum,typedef等

成员表列由若干个成员组成,每个成员都是该结构的一个组成部分。 对每个成员也必须做类型声明。 其形式为: 类型声明符 成员名;
例如:
注意, 最后括号外面的;分号是不可少的 。 结构定义之后,才可以进行变量声明。 凡声明为结构 stu 的变量都由上述4个成员组成。 由此可见,结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合。
声明结构变量 有以下三种方法。
使用上面定义的stu为例:
如:
也可以用宏定义使一个符号常量来表示一个结构类型。例如:
例如:
这种形式的声明的一般形式为:
例如:
这种声明的一般形式为:
第三种方法与第二种方法的区别在于第三种方法中省去了结构名,而直接给出结构变量。
在程序中使用结构变量时,往往不把她作为一个整体来使用。 在ANSI C中除了允许有相同类型的结构变量相互赋值以外,一般对结构变量的使用,包括 赋值、输入、输出、运算 等都是通过结构变量的成员来实现的。 表示结构变量成员的一般形式为: 结构变量名.成员名
例如: boy1.num boy2.sex
如果成员本身又是一个结构,则必须逐级找到最低级的成员才能使用。如: boy1.birthday.month
结构变量的赋值就是给各成员赋值。
数组的元素也可以是结构类型的。 因此可以构成结构型数组。
初始化赋值:
当然也可以在定义 stu结构 时同时声明 pstu。 赋值是把结构变量的首地址赋予该指针变量,不能把结构名赋予该指针变量。 如果 boy 是被声明为 stu类型 的结构变量。 则:
有了结构指针变量,就能更方便地访问结构变量的各个成员。 其访问的一般形式为: (*结构指针变量).成员名 或 结构指针变量->成员名 例如: (*pstu).num 或 pstu->num
例如:
介绍数组的时候,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变。 C语言中不允许动态数组类型。 例如:
但是又有此需求,为了解决这个问题,C语言提供了一些内存管理函数,这些内存管理函数可以按需要动态地分配内存空间,也可把不再使用的空间回收待用,为有效地利用内存资源提供了手段。
常用的内存管理函数有3个:
例子:分配一块区域,输入一个学生数据
上面的例子采用了动态分配的办法为一个结构分配内存空间。 每一次分配一块空间可用来存放一个学生的数据,我们可称之为一个节点。 有多少个学生就应该申请分配多少块内存空间,也就是说要建立多少个节点。 当然用结构数组也可以完成上述工作,但如果预先不能准确把握学生人数,也就无法确定数组大小。 而且当学生留级、退学之后也不能把该元素占用的空间从数组中释放出来。 用动态存储的方法可以很好地解决这些问题。 有一个学生就分配一个节点,无须预先确定学生的准确人数,某学生退学,可删去该节点,并释放该节点占用的存储空间,从而节约了宝贵的内存资源。 另一方面,用数组的方法必须占用一块连续的内存区域。 而使用动态分配时,每个节点之间可以是不连续的(节点内是连续的)。 节点之间的关系可以用指针实现。 即在节点结构中定义一个成员项来存放下一节点的首地址,这个用于存放地址的成员,常把他称为指针域。 可在第一个节点的指针域内 存入第二个节点的首地址,在第二个节点的指针域内 又存入第三个节点的首地址,如此串联下去直到最后一个节点。 最后一个节点因无后续节点连接,其指针域可赋值 0 这种连接方式,在数据结构中称为“链表”。
链表的基本操作主要有以下几种:
例子:建立一个三个节点的链表,存放学生数据。为简单起见,我们假定学生数据结构中只有学号和年龄两项。可编写一个建立链表的函数create。程序如下:
create函数 用于建立一个有 n个节点 的链表,他是一个指针函数,他返回的指针指向 stu结构。 在create函数内定义了三个 stu结构 的指针变量。 head为头指针,pf为指向两相邻节点的前一节点的指针变量。 pb为后一节点的指针变量。
枚举是一种 基本数据类型 ,而不是一种 构造类型 ,因为他不能再分解为任何基本类型。
enum 枚举名{ 枚举值表 };
例如: enum weekday { sun,mou,tue,wed,thu,fri,sat };
enum weeakday a,b,c; 或者为: enum weekday { sun,mou,tue,wed,thu,fri,sat }a,b,c; 或者为: enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;
例子:
说明: 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如: a=sun;b=mon; 是正确的 a=0;b=1; 是错误的。
如果一定要把数值赋予枚举变量,则必须使用强制类型转换。 如: a=(enum weekday)2;
还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。 例子:
typedef定义的一般形式为: typedef 原类型名 新类型名 其中原类型名中含有定义部分,新类型名一般用大写表示,一般用大写表示,以便于区别。 有时也可用 宏定义 来代替 typedef 功能,但是 宏定义 是由 预处理 完成的,而 typedef 则是 在编译时 完成的,后者更为灵活方便。
使用 typedef 定义数组、指针、结构等类型将带来很大的方便,不仅使书写简单而且使意义更加明确,因而增强了可读性。 例如:
又如:

阅读更多 >>>  typedef是c语言关键字吗,typedef和define具体的详细区别

C语言枚举类型怎么用?

枚举啊,就相当于一个宏定义,与#define Monday 0等效,而且在枚举里可以轻松修改数据,比宏定义操作更为方便,假如你宏定义一堆的变量,分别从1到100分配,那么你在枚举里只要把第一个变量赋值为1,后面的变量自动加1排序了,有100个,那么第100个的值就为100了,而且中间你可以改变某个变量的值,那么那个变量以下的值又会跟着这个值重新自增排列
枚举类型定义时,定义的是可以枚举的常量,常量符号的值在定义枚举时已经初始化完成。
有没有枚举变量都不影响已经存在的可枚举常量,
定义枚举变量将来也是要赋值某一枚举常量的。
比如:
WeekTypedef day=Monday;
枚举类型的作用要相对小一些,它其实就是个int类型,但对程序的可读性贡献很大。
至于“结构体有什么用”,这绝对是个新手问题——因为结构体简直无所不用!简单的说,函数体现算法,而结构体则体现数据结构——算法、数据结构恰是程序设计的核心。无论你想用链表、队列、栈、树等数据结构,还是为了方便而把多个数据成员结合在一起(比如,你要存储考生信息,就可以设计一个结构,里面包含姓名、考号、分数等数据成员),都要用到结构体。建议楼主去看看别人写的程序(比如Linux内核,TCP/IP实现),你会发现里面到处都是结构。
typedef只是给枚举类型起个别名,在图中代码根本没用处。
你图中的代码,是直接使用了枚举成员,枚举成员就是常量,直接使用常量没问题。
枚举型是集合,集合中的元素(枚举成员)是一些命名的整型常量,相当于多个#define语句(只不过枚举成员对应的数值可自增)
这个成员常量不同于结构成员变量名,是唯一的,你可以试试再定义一个枚举类型比如:
typedef enum
{
Monday=0,
Tuesday
}WeekTypedef2;
这样会报错,因为你之前定义的枚举类型中已经有同名成员了。换个名字就可以了,比如:
typedef enum
{
Monday2=0,
Tuesday2
}WeekTypedef2;

c语言中,什么是枚举类型(enum),给个例子?

枚举类型就是整形的常量(定义了就不会变),只是给常量取了个名字而已,增加程序的可读性。
例子:main(){
enum weekday
{ sun,mon,tue,wed,thu,fri,sat } a,b,c;
a=sun;
b=mon;
c=tue;
printf("%d,%d,%d",a,b,c);
}
typedef enum
{
TEST_ENUM_ZERO,
TEST_ENUM_FRIST,
TEST_ENUM_END
}TEST_ENUM;
TEST_ENUM test;
test就是一个枚举类型的变量,其值可以是TEST_ENUM_ZERO,TEST_ENUM_FRIST,TEST_ENUM_END中的一个,TEST_ENUM_ZERO其实就是0,TEST_ENUM_FRIST就是1,以此类推

c语言enum是什么意思

c语言enum意思是枚举类型,属于c语言中的一种数据类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
扩展资料:
c语言enum枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。c语言enum枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,sat值为6。
只能把c语言enum枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换。

网站数据信息

"typedef enum什么意思,c语言中,什么是枚举类型(enum),给个例子?"浏览人数已经达到20次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:typedef enum什么意思,c语言中,什么是枚举类型(enum),给个例子?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!