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....; 这两个的区别

C语言 enum和typedef enum的区别

enum sizeof typedef分析

@class for typedef enum?

typedef enum与typedef struct分别是啥意思

李洪强iOS开发之 - enum与typedef enum的用法