文档库 最新最全的文档下载
当前位置:文档库 › Creo2.0创建枚举型参数

Creo2.0创建枚举型参数

Creo2.0创建枚举型参数
Creo2.0创建枚举型参数

1.首先创建一个TXT格式文本文档,重命名该文档,这里我们将文件命名为

【paramater】,然后修改该文档的扩展名,将TXT修改为lst,将该文档放在D:\Program Files\ptc\Creo2.0\Creo 2.0\config\paramater路径中。

2.用记事本打开新创建的文档,这里举例输入以下内容:

ND_ParamDefArr_K01={

{ Name=类型

Type=string

Default='加工件'

Enum={ '标准件','气动元件','电器元件','光学件','加工件' }

},

{Name=材料

Type=string

Default='45'

Enum={ '45','20','HT200','Cu','Q235‐B','40Cr' }

},

{Name=数量

Type=integer

Default=1

Range=[1,9]

}

}

PS:name:参数名称,允许中文;

Type:参数类型;

Default:默认值;

Enum:可选择的项;

类型和材料参数属于枚举型参数,数量参数属于数值区间型参数。

Range后面的括号用来定义范围:

[]:表示在此区间内包括相应的最大和最小值。

():表示在此区间内不包括相应的最大和最小值。

注意,在输入内容时要在半角字符状态下输入,否则会识别错误;在输入符号时要切换到英文输入法进行输入。

3.填写完成后保存文档,然后打开Creo【选项】命令,在弹出的菜单中单击【配

置编辑器】命令,查找添加“restricted_val_definition”选项,设置值为lst文件存放目录D:\Program Files\ptc\Creo2.0\Creo 2.0\config\paramater,如图1‐1所示。然后保存config文件,单击【确定】按钮。

1‐ 1配置路径

4.现在讲Creo软件关闭后重新启动,我们可以在打开的Creo初始界面底部看

到“已读入受限制参数的外部文件”提示语,并显示文件路径,如图1‐2所示,这表示我们的lst文件创建完成。

1‐ 2显示lst文件路径

5.新建一个Creo零部件,进入三维造型界面,单击【工具】选项,然后单击【参

数】命令,系统弹出参数对话框,如图1‐3所示。单击左下角的绿色+号按钮,添加一个新参数,选中该参数右侧【受限制的】方框,可以指定我们刚才创建的lst文件中的参数,如图1‐4所示,然后依次创建其他的受限制的参数。

然后我们点击新创建的参数的【值】可以发现枚举型参数出现下拉选择菜单,如图1‐5所示。而数值区间型参数只能输入在1‐9之间的整数(包括1和9),当输入的整数不在此区间时系统会提示“输入的数值不在此区间内”。

1‐ 3参数对话框

1‐ 4添加受限制的参数

1‐ 5参数的下拉菜单

枚举类型的定义

枚举类型的定义 在程序设计中,有时会用到由若干个有限数据元素组成的集合,如一周内的星期一到星期日七个数据元素组成的集合,由三种颜色红、黄、绿组成的集合,一个工作班组内十个职工组成的集合等等,程序中某个变量取值仅限于集合中的元素。此时,可将这些数据集合定义为枚举类型。因此,枚举类型是某类数据可能取值的集合,如一周内星期可能取值的集合为: { Sun,Mon,Tue,Wed,Thu,Fri,Sat} 该集合可定义为描述星期的枚举类型,该枚举类型共有七个元素,因而用枚举类型定义的枚举变量只能取集合中的某一元素值。由于枚举类型是导出数据类型,因此,必须先定义枚举类型,然后再用枚举类型定义枚举型变量。 enum <枚举类型名> { <枚举元素表> }; 其中:关键词enum表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素表由枚举元素或枚举常量组成。例如:enum weekdays { Sun,Mon,Tue,Wed,Thu,Fri,Sat }; 定义了一个名为 weekdays的枚举类型,它包含七个元素:Sun、Mon、Tue、Wed、Thu、Fri、Sat。在编译器编译程序时,

给枚举类型中的每一个元素指定一个整型常量值(也称为序号值)。若枚举类型定义中没有指定元素的整型常量值,则整型常量值从0开始依次递增,因此,weekdays枚举类型的七个元素Sun、Mon、Tue、Wed、Thu、Fri、Sat对应的整型常量值分别为0、1、2、3、4、5、6。 注意:在定义枚举类型时,也可指定元素对应的整型常量值。例如,描述逻辑值集合{TRUE、FALSE}的枚举类型boolean可定义如下: enum boolean { TRUE=1 ,FALSE=0 }; 该定义规定:TRUE的值为1,而FALSE的值为0。 而描述颜色集合{red,blue,green,black,white,yellow}的枚举类型colors可定义如下: enum colors {red=5,blue=1,green,black,white,yellow}; 该定义规定red为5 ,blue为1,其后元素值从2 开始递增加1。green、black、white、yellow的值依次为2、3、4、5。此时,整数5将用于表示二种颜色red与yellow。通常两个不同元素取相同的整数值是没有意义的。 枚举类型的定义只是定义了一个新的数据类型,只有用枚举类型定义枚举变量才能使用这种数据类型。 8.1.2枚举类型变量的定义

全面掌握java枚举类型

枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义: Java代码 1.public enum Color{ 2. RED,BLUE,BLACK,YELLOW,GREEN 3.} 显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。而这些类都是类库中Enum类的子类(https://www.wendangku.net/doc/e812960964.html,ng.Enum)。它们继承了这个Enum中的许多有用的方法。下面我们就详细介绍enum定义的枚举类的特征及其用法。(后面均用Color举例) 1、Color枚举类是特殊的class,其枚举值(RED,BLUE...)是Color的类对象(类实例): Color c=Color.RED; 而且这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。 2、即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。但是,枚举类的构造器有很大的不同: (1) 构造器只是在构造枚举值的时候被调用。 Java代码 1.enum Color{ 2. RED(255,0,0),BLUE(0,0,255),BLACK(0,0,0),YELLOW(2 55,255,0),GREEN(0,255,0); 3. //构造枚举值,比如RED(255,0,0) 4. private Color(int rv,int gv,int bv){ 5. this.redValue=rv; 6. this.greenValue=gv; 7. this.blueValue=bv; 8. } 9. 10. public String toString(){ //自定义的public方 法 11. return super.toString()+"("+redValue+","+greenVa lue+","+blueValue+")"; 12. } 13. 14. private int redValue; //自定义数据域,private为 了封装。 15. private int greenValue;

枚举类实现接口及在枚举类中定义抽象方法

枚举类可以实现接口,但要求枚举中的每个对象都必须覆写接口中的抽象方法。interface Print{ public String getColor() ; } enum Color implements Print{ RED{ public String getColor(){ return "红色" ; } },GREEN{ public String getColor(){ return "绿色" ; } },BLUE{ public String getColor(){ return "蓝色" ; } } ; } public class InterfaceEnumDemo{ public static void main(String args[]){ for(Color c:Color.values()){ System.out.print(c.getColor() + "、") ; } } }; 枚举类中可以定义抽象方法,但要求枚举中每个对象都必须覆写抽象方法enum Color { RED{ public String getColor(){ return "红色" ; } },GREEN{ public String getColor(){ return "绿色" ; } },BLUE{ public String getColor(){ return "蓝色" ; } } ; public abstract String getColor() ; } public class AbstractMethodEnum{

public static void main(String args[]){ for(Color c:Color.values()){ System.out.print(c.getColor() + "、") ; } } };

c语言中枚举类变量使用

#include void main() { printf("c语言中枚举类型变量的使用:\n"); printf("\n"); printf("实际问题说明:\n"); printf("口袋中有红、黄、蓝、白、黑5种颜色的球若干。每次从袋子中先后取出三个球,求得到3种不同颜色的球的可能取法:\n"); printf("\n"); enum color{red,yellow,blue,white,black }; enum color pri; int i,j,k,n,loop; n=0; for(i=red;i<=black;i++) { for(j=red;j<=black;j++) { if(i!=j) { for(k=red;k<=black;k++) { if((k!=i)&&(k!=j)) { n=n+1; printf("第%d个筛选组合\n",n); printf("%-4d",n); for(loop=1;loop<=3;loop++) {

switch(loop) { case 1: pri=(enum color)i;//此处需要进行强制类型转换,否则报错 break; case 2: pri=(enum color)j;//此处需要进行强制类型转换,否则报错 break; case 3: pri=(enum color)k;//此处需要进行强制类型转换,否则报错 break; default: break; } switch(pri) { case red: printf("%-10s","red"); break; case yellow: printf("%-10s","yellow"); break; case blue: printf("%-10s","blue"); break; case white: printf("%-10s","white");

C-枚举详解

C-枚举 在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只 有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。 定义一个变量是枚举类型,可以先定义一个枚举类型名,然后再说明这个变量是该枚 举类型。例如: enum weekday{sun,mon,tue,wed,thu,fri,sat}; 定义了一个枚举类型名 enum weekday,然后定义变量为该枚举类型。例如: enum weekday day; 当然,也可以直接定义枚举类型变量。例如: enum weekday{sun,mon,tue,wed,thu,fri,sat} day; 其中,sum,mon,…,sat 等称为枚举元素或枚举常量,它们是用户定义的标识符。 需要说明的有以下几点。 ① 枚举元素不是变量,而是常数,因此枚举元素又称为枚举常量。因为是常量,所 以不能对枚举元素进行赋值。 ② 枚举元素作为常量,它们是有值的,C 语言在编译时按定义的顺序使它们的值为 0,1,2,…。 在上面的说明中,sun 的值为 0,mon 的值为 1,…sat 的值为 6,如果有赋值语句 day=mon; 则 day 变量的值为 1。当然,这个变量值是可以输出的。例如: printf ("%d",day); 将输出整数 1。 如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值。例如: enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}day; 这时,sun 为 7,mon 为 1,以后元素顺次加 1,所以 sat 就是 6 了。 ③ 枚举值可以用来作判断。例如: if (day==mon) {…} if (day>mon) {…} 枚举值的比较规则是:按其在说明时的顺序号比较,如果说明时没有人为指定,则第 一个枚举元素的值认作 0。例如,mon>sun,sat>fri。 C 语言教程 ?216? ④ 一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值。例如: day=(enum weekday)2; 这个赋值的意思是,将顺序号为 2 的枚举元素赋给 day,相当于 workday=tue; 【例 11.6】从键盘输入一个整数,显示与该整数对应的枚举常量的英文名称。 # include void main( ) {

头文件常用枚举类型定义

1.中断号定义 typedefenumIRQn { /****** Cortex-M4 Processor Exceptions Numbers ****************************************************************/ NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ MemoryManagement_IRQn = -12, /*!< 4 Cortex-M4 Memory Management Interrupt */ BusFault_IRQn = -11, /*!< 5 Cortex-M4 Bus Fault Interrupt */ UsageFault_IRQn = -10, /*!< 6 Cortex-M4 Usage Fault Interrupt */ SVCall_IRQn = -5, /*!< 11 Cortex-M4 SV Call Interrupt */ DebugMonitor_IRQn = -4, /*!< 12 Cortex-M4 Debug Monitor Interrupt */ PendSV_IRQn = -2, /*!< 14 Cortex-M4 Pend SV Interrupt */ SysTick_IRQn = -1, /*!< 15 Cortex-M4 System Tick Interrupt */ /****** STM32 specific Interrupt Numbers **********************************************************************/ WWDG_IRQn = 0, /*!< Window WatchDog Interrupt */ PVD_IRQn = 1, /*!< PVD through EXTI Line detection Interrupt */ TAMP_STAMP_IRQn = 2, /*!< Tamper and TimeStamp interrupts through the EXTI line */ RTC_WKUP_IRQn = 3, /*!< RTC Wakeup interrupt through the EXTI line */ FLASH_IRQn = 4, /*!< FLASH global Interrupt */ RCC_IRQn = 5, /*!< RCC global Interrupt */ EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */ EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */ EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */ EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */ EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt

c#枚举(Enum)的用法及遍历方法

c#枚举(Enum)的用法及遍历方法 foreach (string s in Enum.GetNames(typeof(WallKind))) { WinFormTools.MsgBox(s); } 有人问怎样遍历Revit API中的枚举,遍历枚举是C#的语法功能。 来自MSDN 枚举可用来存储字符串与数字的值对,相当于一个对照表 常用方法:GetName(),GetValue(),Parse() using System; public class EnumTest { enum Days { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursda y, Friday }; enum BoilingPoints { Celcius = 100, Fahrenheit = 212 }; [FlagsAttribute] enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 }; public static void Main() { Type weekdays = typeof(Days); Type boiling = typeof(BoilingPoints); Console.WriteLine("The days of the week, and their corresponding valu es in the Days Enum are:"); foreach ( string s in Enum.GetNames(weekdays) ) Console.WriteLine( "{0,-11}= {1}", s, Enum.Format( weekdays, Enu m.Parse(weekdays, s), "d")); Console.WriteLine(); Console.WriteLine("Enums can also be created which have values that r epresent some meaningful amount."); Console.WriteLine("The BoilingPoints Enum defines the following item s, and corresponding values:"); foreach ( string s in Enum.GetNames(boiling) ) Console.WriteLine( "{0,-11}= {1}", s, Enum.Format(boiling, Enum.P arse(boiling, s), "d")); Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow; Console.WriteLine();

枚举类型的定义

(一)枚举类型的定义 枚举类型是一种自定义类型,要使用枚举类型当然也要先说明枚举类型。 枚举类型的一般格式: (标识符1,标识符2,…,标识符n) 说明:①括号中的每一个标识符都称为枚举元素或枚举常量。 ②定义枚举类型时列出的所有枚举元素构成了这种枚举类型的值域(取值范围),也就是说,该类型的变量所有可能的取值都列出了。 例如,下列类型定义是合法的: type days=(sun,mon,tue,wed,thu,fri,sat); colors=(red,yellow,blue,white,black,green); 而下列类型定义是错误的(因为枚举元素非标识符): type colortype=('red','yellow','blue','white'); numbers=(1,3,5,7,9); ty=(for,do,while); (二)枚举类型变量 定义了枚举类型,就可以把某些变量说明成该类型。如: var holiday,workday:day; incolor:colors; 也可以把变量的说明与类型的定义合并在一起,如: var holiday,workday:(sun,mon,tue,wed,thu,fri,sat); incolor:(red,yellow,blue,white,black,green); (三)枚举类型的性质 ⒈枚举类型属于顺序类型 根据定义类型时各枚举元素的排列顺序确定它们的序号,第一个枚举元素的序号为0。例如:设有定义: type days=(sun,mon,tue,wed,thu,fri,sat); 则: ord(sun)=0,ord(mon)=1,ord(sat)=6;succ(sun)=mon,succ(mon)=tue, succ(fri)=sat;pred(mon)=sun,pred(tue)=mon,pred(sat)=fri。 应注意的是:枚举类型中的第一个元素无前趋,最后一个元素无后继。 ⒉对枚举类型只能进行赋值运算和关系运算

java枚举类型

java枚举类型 public class TestEnum { /*最普通的枚举*/ public enum ColorSelect { red, green, yellow, blue; } /* 枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样. */ public enum Season { // 枚举列表必须写在最前面,否则编译出错 winter, spring, summer, fall; private final static String location = "Phoenix"; public static Season getBest() { if (location.equals("Phoenix")) return winter; else return summer; } } /*还可以有构造方法*/ public enum Temp { /*通过括号赋值,而且必须有带参构造器和一属性跟方法,否则编译出错 * 赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值 * 如果不赋值则不能写构造器,赋值编译也出错*/ absoluteZero(-459), freezing(32),boiling(212), paperBurns(451); private final int value; public int getValue() { return value; } //构造器默认也只能是private, 从而保证构造函数只能在内部使用 Temp(int value) { this.value = value; } } public static void main(String[] args) { /* * 枚举类型是一种类型,用于定义变量,以限制变量的赋值赋值时通过"枚举名.值"来取得相

枚举类型及Enum方法

枚举类型及Enum方法 实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期只有七天,一年只有十二个月。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,程序设计语言提供了一种枚举类型(也称为枚举)。枚举类型为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。例如,使用枚举类型定义一个星期七天,定义一年十二个月: enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec } 1.枚举的声明,其形式为: 访问修饰符enum 枚举名: 基础类型{ 枚举成员(标识符) } 说明:任意枚举类型都有基础类型,该基础类型可以是除char 以外的任何整型,如:byte、sbyte、short、ushort、int、uint、long 、ulong。基础类型必须能够表示该枚举中定义的所有枚举成员。枚举声明时可以对基础类型进行显式地声明。而没有显式声明时基础类型默认是int。基础类型指定为每个枚举数成员分配的内存大小。 2.枚举注意事项: 1)枚举成员不能是数值常量、字符常量、字符串常量,使用时不能加单、双引 号。例如,以下的定义是错误的: enum Days { …Sun?, …Mon?, …Tues?, …Wed?, …Thu?, …Fri?, …Sat? } enum Days { “Sun”, “Mon”, “Tues”, “Wed”, “Thu”, “Fri”, “Sat” } 2)每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类 型。枚举类型属于顺序类型。根据定义类型时各枚举成员的排列顺序确定它们的序列,如在默认基础类型即int的情况下序列号从0开始,后面每个枚举成员的值依次递增1。当然可以显式赋值。例如: enum Days { Sunday=2, Monday, Tuesday,Wednesday, Thursday, Friday, Saturday } 3)枚举成员是常量,不是变量。尽管是标识符也不能在程序中当做变量用赋值 语句对它赋值。例如以下在程序中对枚举成员赋值会提示错误。 public class EnumTest { enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } static void Main() { Sunday = 5; Sunday = Monday; Console.WriteLine("Sunday = {0}", Sunday); } } 4)从枚举成员到整型的转换需要用显式类型转换来完成。例如对于下面的语 句将枚举类型Days类型的枚举成员通过使用强制转换来转换枚举成员为整型。 public class EnumTest { enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }

c语言枚举类型的一些例子

注:以下全部代码的执行环境为VC++ 6.0 宏和枚举的区别 宏和枚举之间的差别主要在作用的时期和存储的形式不同,宏是在预处理的阶段进行替换工作的,它替换代码段的文本,程序运行的过程中宏已不存在了。而枚举是在程序运行之后才起作用的,枚举常量存储在数据段的静态存储区里。宏占用代码段的空间,而枚举除了占用空间,还消耗CPU资源。 但也不能就此说宏比枚举好,如果需要定义非常多的常量,用一条enum {.....}明显比一大堆define更清晰,枚举也可以用来定义一些特殊类型,比如Bool, 如:type enum {FALSE,TRUE} Bool; 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7 在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。 1. 定义一种新的数据类型- 枚举型 以下代码定义了这种新的数据类型- 枚举型 enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; (1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。 (2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。 (3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。

(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。 (5) 枚举型是预处理指令#define的替代。 (6) 类型定义以分号;结束。 2. 使用枚举类型对变量进行声明 新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型,如:整型int, 单精度浮点型float, 双精度浮点型double, 字符型char, 短整型short等等。用这些基本数据类型声明变量通常是这样: char a; //变量a的类型均为字符型char char letter; int x, y, z; //变量x,y和z的类型均为整型int int number; double m, n; double result; //变量result的类型为双精度浮点型double 既然枚举也是一种数据类型,那么它和基本数据类型一样也可以对变量进行声明。 方法一:枚举类型的定义和变量的声明分开 enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; enum DAY yesterday; enum DAY today; enum DAY tomorrow; //变量tomorrow的类型为枚举型enum DAY enum DAY good_day, bad_day; //变量good_day和bad_day的类型均为枚举型enum DAY 方法二:类型定义与变量声明同时进行: enum //跟第一个定义不同的是,此处的标号DAY省略,这是允许的。 { saturday, sunday = 0, monday, tuesday,

c规范,枚举,枚举成员

竭诚为您提供优质文档/双击可除c规范,枚举,枚举成员 篇一:c和verilog的enum枚举类型 Verilog中的枚举类型与c语言中一样。 c语言中枚举类型 1、应用场合 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作: #definemon1 #definetue2 #definewed3 #definethu4 #defineFRi5 #definesat6 #definesun7 在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。以下代码定义了这种新的数据类型: enumday

{ mon=1,tue,wed,thu,FRi,sat,sun }; (1)枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开; (2)day是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项; (3)第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1,如果把第一个改为1,后续成员依次为2,3,4…; (4)可以在定义枚举类型时初始化各个成员的值,从而自定义某个范围内的整数; (5)枚举型是预处理指令#define的替代; (6)类型定义以分号;结束。 2、引用方法 (1)定义后引用enumday { mon=1,tue,wed,thu,FRi,sat,sun }; enumdayyesterday; enumdaytoday; enumdaytomorrow;//变量tomorrow的类型为枚举型

enumday enumdaygood_day,bad_day;//变量good_day和bad_day 的类型均为枚举型 其中任何一个枚举数据类型enumday都是在所以定义的enumday成员范围变化。 (2)定义时引用 enumweek{mon=1,tue,wed,thu,Frisat,sun}days;//变量days的类型为枚举型enumweek (3)用typedef把枚举类型定义为别名 typedefenumworkday { saturday, sunday=0, monday, tuesday, wednesday, thursday, friday }workday;//此处的workday为枚举型enumworkday的别名 workdaytoday,tomorrow;//变量today和tomorrow的类型为枚举型workday,也即enumworkday。同时,

C语言枚举类型

C语言枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。 11.1.1枚举类型的定义和枚举变量的说明 1、枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表}; 在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。 2、枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式: enum weekday{ sun,mou,tue,wed,thu,fri,sat }; enum weekday 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; 11.1.2枚举类型变量的赋值和使用 枚举类型在使用中有以下规定: 1、枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值: sun=5; mon=2; sun=mon; 都是错误的。 2、枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。 【例11.10】 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); } 说明:只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如: a=sum;

枚举定义和语法

Try{ } Catch{ }; 水仙花数:它是一个三位数,设cba, A*a*a+b*b*b+c*c*c=cba 153=1*1*1+5*5*5+3*3*3 For循环 Break和continue的用法。 三元运算符:表1?表2 :表3 eg:int max = a > b ? a : b 执行过程:首先计算表达式1,表达式1应该是一个能够计算成bool类型的值,如果表达1的值为true,则表达式2的值做为整个表达式的值,如果表1的值为false,则表达式3的值作为整个表达式的值。 表达式2和表达式3的类型一定要相同。 常量: const 类型常量名= 常量值 枚举(结构体):让我们定义一种枚举类型并且在定义这种类型时,我们要指定这个类型的所有值. enum 自己起的类型名称{值1,值2,值3.......值n}; 枚举的定义,一般和类定义在同一个级别,这样,在同一个命名空间下所有的类就都可以使用这个枚举了。(方法中) 1).限制用户不能随意赋值,只能在定义枚举时列举的值中选择. 数据库中应用 2)不需要记每一个值是什么,只需要选择相应的值 3)定义枚举时,值不能是int类型。 enum Gender { 男, 女 } Class program { ...... Gender sex; Sex=Gender.男;

} MessageBox.Show(“内容”, “标题”,MessageBoxButtons. MessageBoxIcon. ); 如何把一个字符串转换成枚举类型: (Gender)(Enum.Parse(typeof(Gender),”待转换的字符串”));

各种C编译器中枚举类型大小问题

VC,C++ Builder和lcc三个编译器间枚举类型enum长度的情况. 各种C编译器默认的字节对齐数不一致,要写通用的代码,经常就是使用 #pragma pack(1) ... #pragma pack() 来使编译器以单字节对齐. 今天在bcb5中调用vc6的dll时出现错误,但在VC中调用dll却很正常,说明很有可能是编译器之间的差异造成.仔细debug后发现bcb和vc的枚举类型长度不一样,即便使用了#pra gma pack(1)编译开关. 如以下程序: /*---------------------*/ #pragma pack(1) typedef enum { ENUMITEM1=0, ENUMITEM2, ENUMITEM3 } ENUM; #pragma pack() ENUM mENUM; sizeof(mENUM); /*---------------------*/ 在VC6和LCC3.3中为四字节,而在BCB中即为1字节.再试以下程序 /*---------------------*/ #pragma pack(4) typedef enum { ENUMITEM1=0, ENUMITEM2, ENUMITEM3 } ENUM; #pragma pack() ENUM mENUM; sizeof(mENUM);

/*---------------------*/ 在VC和LCC中依然是4字节,而在BCB中也还是1字节,由于手上暂时没有GCC,所以不能看GCC的情况. 以上说明枚举类型作为C的标准变量类型,其长度是不受编译开关影响的,就如char类型无论如何pack,依然是单字节.但是,并非所有的编译器都遵循C标准,或许是VC不标准,或许是BCB不标准. 所以建议以后用到的变量尽量使用char或int来替代enum,以免带来不必要的麻烦.

java中枚举类型enum的定义

枚举类型的定义enum Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。 1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum 的实例。 2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。 3.Enum默认实现了https://www.wendangku.net/doc/e812960964.html,parable接口。 4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”. 5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。 6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。 7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。 了解了这些基本特性,我们来看看如何使用它们。 1.遍历所有有枚举值. 知道了有values方法,我们可以轻车熟路地用ForEach 循环来遍历了枚举值了。 for (Color c: Color.values()) System.out.println(“find value:” + c); 2.在enum中定义方法和变量,比如我们可以为Color增加一个方法随机返回一个颜色。

枚举类型定义及例子

枚举类型 Pascal程序不仅用于数值处理,还更广泛地用于处理非数值的数据。例如,性别、月份、星期几、颜色、单位名、学历、职业等。 1、枚举类型的定义 格式:type 枚举类型标识符=(标识符1,标识符2,…,标识符n) 2、枚举类型数据特点 ①枚举元素只能是标识符; 例如,下列类型定义是合法的: type days=(sun,mon,tue,wed,thu,fri,sat); colors=(red,yellow,blue,white,black,green); 而下列类型定义是错误的: type colortype=('red','yellow','blue','white'); numbers=(1,3,5,7,9); 定义枚举类型时列出的所有枚举元素构成了这种枚举类型的值域(取值范围)。 ②枚举类型属于顺序类型 根据定义类型时各枚举元素的排列顺序确定它们的序号,且序号从0开始。 例如,定义type days=(sun,mon,tue,wed,thu,fri,sat); 则,o rd(sun)=0,ord(mon)=1,……,以此类推。 枚举类型中的第一个元素无前趋,最后一个元素无后继。 pred(sat)=fri; succ(sun)=mon; ord(sat)=6; ③同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。如下列定义是错误的: type color1=(red,yellow,white); color2=(blue,red,black); 因为red属于枚举类型color1和color2 ④枚举类型变量只能进行赋值运算和关系运算,不能进行算术运算和逻辑运算。 在枚举元素比较时,实际上是对其序号的比较。 例如定义如下: type days=(sun,mon,tue,wed,thu,fri,sat); colors=(red,yellow,blue,white,black,green);

enum与typedef enum的用法

在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7 在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。 1. 定义一种新的数据类型 - 枚举型 以下代码定义了这种新的数据类型 - 枚举型 enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; (1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。 (2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。 (3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。 (4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。 (5) 枚举型是预处理指令#define的替代。 (6) 类型定义以分号;结束。 2. 使用枚举类型对变量进行声明 新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型,如:整型int, 单精度浮点型float, 双精度浮点型double, 字符型char, 短整型short等等。用这些基本数据类型声明变量通常是这样: char a; //变量a的类型均为字符型char char letter; int x, y, z; //变量x,y和z的类型均为整型int int number; double m, n; double result; //变量result的类型为双精度浮点型double 既然枚举也是一种数据类型,那么它和基本数据类型一样也可以对变量进行声明。

C#枚举类型和int类型相互转换

C#枚举类型和int类型相互转换 C# 枚举(Enum) 枚举是一组命名整型常量。枚举类型是使用enum关键字声明的。 C# 枚举是值数据类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 声明enum变量 声明枚举的一般语法: 1enum 2 { 3 enumeration list 4 }; 其中, ?enum_name指定枚举的类型名称。 ?enumeration list是一个用逗号分隔的标识符列表。 枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是0.例如:定义一个枚举类型

1enum DayWeek 2 { 3 Monday = 0, 4 Tuesday = 1, 5 Wednesday = 2, 6 Thursday = 3, 7 Friday = 4, 8 Saturday = 5, 9 Sunday = 6 10 } 测试使用: 1static void Main(string[] args) 2 { 3//直接打印枚举 4 Console.WriteLine("Monday:{0},", DayWeek.Monday);//Monday:Monday 5 6//将枚举转换为int类型输出int值 7int mondayInt = (int)DayWeek.Monday; 8 Console.WriteLine("Monday:{0}", mondayInt); //Monday:0 9 10//通过int获取枚举值并打印 11 DayWeek monday = (DayWeek)mondayInt;

相关文档