typedef enum FALSE , TRUE bool ; 求解意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typedef enum FALSE , TRUE bool ; 求解意思相关的知识,希望对你有一定的参考价值。
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) 参考技术A 声明了一个枚举类型一般形式为:
enum [枚举名] 枚举元素列表;
也可以声明没有枚举名的枚举类型,就是像你给的那种,后边的bool是枚举类型的变量,可以对其进行赋值,不过只能用FALSE或者TRUE进行赋值。追问
求深入解释...
参考技术B 这里具体来说,FALSE对应于0,TRUE对应于1。当定义一个变量比如bool a时,如果赋值a = 0,即代表FALSE;如赋值a=1,即代表TRUE。
李洪强iOS开发之 - enum与typedef enum的用法
李洪强iOS开发之 - enum与typedef enum的用法
01 - 定义枚举类型
上面我们就在ViewController.h定义了一个枚举类型,枚举类型的值默认是连续的自然数,例如例子中的
TO_BE_PAID=0,//开始
那么其后的就依次为1,2,3....所以一般只需要设置枚举中第一个的值就可以。
注意: 在定义枚举类型的时候一定要定义在.h中的#imort 和€interface之间定义,位置不能错了
02 - 定义操作类型
enum和enum typedef 在IOS中的使用
第一、typedef的使用
C语言里typedef的解释是用来声明新的类型名来代替已有的类型名,typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)
如:typedef char gender;
gender a;与char a;语句相同。
第二 、enum的使用
enum是枚举类型, enum用来定义一系列宏定义常量区别用,相当于一系列的#define xx xx,当然它后面的标识符也可当作一个类型标识符。
如:
enum AlertTableSections
{
kUIAction_Simple_Section = 1,
kUIAction_OKCancel_Section,
kUIAction_Custom_Section,
kUIAlert_Simple_Section,
kUIAlert_OKCancel_Section,
kUIAlert_Custom_Section,
};
kUIAction_OKCancel_Section的值为2.
第三、typedef enum 的使用
typedef enum则是用来定义一个数据类型,那么该类型的变量值只能在enum定义的范围内取。
typedef enum {
UIButtonTypeCustom = 0, // no button type
UIButtonTypeRoundedRect, // rounded rect, flat white button, like in address card
UIButtonTypeDetailDisclosure,
UIButtonTypeInfoLight,
UIButtonTypeInfoDark,
UIButtonTypeContactAdd,
} UIButtonType;
UIButtonType表示一个类别,它的值只能是UIButtonTypeCustom....
在了解enum和typedef enum的区别之前先应该明白typedef的用法和意义。
C语言里typedef的解释是用来声明新的类型名来代替已有的类姓名,例如:
typedef int CHANGE;
指定了用CHANGE代表int类型,CHANGE代表int,那么:
int a,b;和CHANGE a,b;是等价的、一样的。
方便了个人习惯,熟悉的人用CHANGE来定义int。
typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
而enum是枚举类型,有了typedef的理解容易看出,typedef enum定义了枚举类型,类型变量取值在enum{}范围内取,在使用中二者无差别。
enum AlertTableSections
{
kUIAction_Simple_Section = 0,
kUIAction_OKCancel_Section,
kUIAction_Custom_Section,
kUIAlert_Simple_Section,
kUIAlert_OKCancel_Section,
kUIAlert_Custom_Section,
};
typedef enum {
UIButtonTypeCustom = 0, // no button type
UIButtonTypeRoundedRect, // rounded rect, flat white button, like in address card
UIButtonTypeDetailDisclosure,
UIButtonTypeInfoLight,
UIButtonTypeInfoDark,
UIButtonTypeContactAdd,
} UIButtonType;
看上面两个例子更好理解,下面的是UIButton的API,UIButtonType指定的按钮的类型,清楚名了,上面的直接调用enum里的元素就可以了。
以上是关于typedef enum FALSE , TRUE bool ; 求解意思的主要内容,如果未能解决你的问题,请参考以下文章
枚举类型 typedef enum....; enum....; 这两个的区别