枚举类型的变量如何使用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了枚举类型的变量如何使用?相关的知识,希望对你有一定的参考价值。
参考技术A 1、不同语言的枚举定义关键字有所不,内容大致相同。2、以为vb6为例,所谓枚举变量,就是指用
Enum
类型定义的变量。变量和参数都可以定义为
Enum
类型。Enum
类型中的元素被初始化为
Enum
语句中指定的常数值。所赋给的值可以包括正数和负数,且在运行时不能改变。
例如:
Enum
SecurityLevel
IllegalEntry
=
-1
SecurityLevel1
=
0
SecurityLevel2
=
1
End
Enum
3、vb6枚举量的使用方法:
Private
Enum
MyColor
red
=
&HFF&
green
=
&HFF00&
blue
=
&HFF0000
End
Enum
Private
Sub
Command1_Click()
Me.BackColor
=
MyColor.blue
Me.BackColor
=
blue
Dim
icolor
As
MyColor
icolor
=
blue
Me.BackColor
=
icolor
End
Sub 参考技术B 变量别放在头文件里。由于头文件可能被多模快引用,就可能出现重复定义。
作为全局变量,在一个模快中定义一次,而在其他模快中用“extern”说明之。
按lz情形,应该出现的是“未定义”的错误,因为“extern”不提供实质意义上的变量物理空间的分配。
解决的方法是:
头文件中放置
enum
abc
a,b,c;
c文件中放置
enum
abc
cc;
//
在某一主模块中
extern
enum
abc
cc;
//
在其他模块中
这样,就可以对cc进行操作了,如:
cc
=
c;
枚举类型变量定义和使用
枚举类型的定义和使用与结构体类型有很大的区别,如下是一个枚举类型的定义:
enum test
{
a, b, c
};
定义了枚举类型enum test,可以使用该类型来定义变量,就是枚举类型变量,如下:
enum test t1;
此时,定义了枚举类型变量t1,枚举类型变量t1的值与enum test中的枚举常数列表a, b, c没有任何关系。
那么,刚刚定义的枚举类型变量t1,与普通的int类型变量一样,变量中的初始值是一个内存中的随机值。
但是,我们可以把枚举常量列表中定义的常量,赋值给枚举类型变量。例如:
enum test t1;
t1 = c;
此时,枚举类型变量t1就得到了枚举常量c的值。程序测试例子如下:
程序运行结果如下:
可以看到,枚举类型enum test就如同int类型一样,它存放的就是一个常量数值,所以,在内存中占据4个字节的存储空间。
刚刚定义枚举类型变量t1的时候,就如同定义一个int类型变量一样,它是一个局部变量,它的值是创建变量时,内存中残留的随机数据。所以,有:
enum test t1; //定义枚举类型变量t1
类似于
int t1; //定义int类型的变量t1
最终,我们可以把枚举常量b赋给枚举类型变量t1。
注意:给枚举类型变量赋值,只能够设置枚举常量列表中定义的常量值。例如:
t1 = 3;
此时,给枚举类型常量t1设置一个数值,它不是枚举常量列表中定义的常量值,那么,就编译错误。
总结:
- 在Ubuntu系统中,使用GCC编译器,可以给一个枚举类型变量,设置整数值;
- 在Visual Studio编译器中,不可以给一个枚举类型变量,设置整数值;
- 所以,为了代码的兼容性,不建议直接给枚举类型变量设置整数值;
所以,我们可以知道:给枚举类型变量赋值,必须设置枚举常量列表中定义的常量。
枚举类型常量列表中定义的常量,它们就是一个常量数值,可以赋值给int、char等类型的变量,例如:
程序运行结果如下:
此时,我们定义了一个int类型的变量t1,然后,可以把枚举类型常量b设置给int类型的变量t1。因为,枚举类型常量b就表示一个数值,就如同把一个数值赋值给int类型的变量。
韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
以上是关于枚举类型的变量如何使用?的主要内容,如果未能解决你的问题,请参考以下文章