我不认为我从根本上理解枚举是什么,以及什么时候使用它。
例如:
typedef enum {
kCircle,
kRectangle,
kOblateSpheroid
} ShapeType;
这里真正声明的是什么?
我不认为我从根本上理解枚举是什么,以及什么时候使用它。
例如:
typedef enum {
kCircle,
kRectangle,
kOblateSpheroid
} ShapeType;
这里真正声明的是什么?
当前回答
类型定义是C和c++中的关键字。它用于为基本数据类型(char, int, float, double, struct & enum)创建新名称。
typedef enum {
kCircle,
kRectangle,
kOblateSpheroid
} ShapeType;
这里它创建枚举数据类型ShapeType &我们可以为枚举类型ShapeType写新的名称,如下所示
ShapeType shape1;
ShapeType shape2;
ShapeType shape3;
其他回答
typedef enum {
kCircle,
kRectangle,
kOblateSpheroid
} ShapeType;
然后你可以这样使用它:-
ShapeType shape;
and
enum {
kCircle,
kRectangle,
kOblateSpheroid
}
ShapeType;
现在你可以这样使用它:-
enum ShapeType shape;
您可以使用下面的格式,原始默认值从0开始,所以
kCircle是0, kRectangle是1, kOblateSpheroid是2。
您可以指定自己的特定起始值。
typedef enum : NSUInteger {
kCircle, // for your value; kCircle = 5, ...
kRectangle,
kOblateSpheroid
} ShapeType;
ShapeType circleShape = kCircle;
NSLog(@"%lu", (unsigned long) circleShape); // prints: 0
用户定义的类型,其值可能为kCircle、kRectangle或koblabespheroid。但是,枚举内部的值(kCircle等)在枚举外部是可见的。记住这一点很重要(int i = kCircle;例如,有效的)。
Typedef对于重新定义现有变量类型的名称非常有用。它提供了调用数据类型的简短而有意义的方式。 例句:
typedef unsigned long int TWOWORDS;
这里,unsigned long int类型被重新定义为TWOWORDS类型。因此,我们现在可以声明unsigned long int类型的变量:
TWOWORDS var1, var2;
而不是
unsigned long int var1, var2;
Enum用于为枚举元素赋值,这在struct中无法完成。因此,每次访问完整变量时,我们可以通过在enum中分配给变量的值来完成。默认情况下,它以0赋值开始,但我们可以为它赋任何值,enum中的下一个变量将被赋值为前一个值+1。