爱玩科技网
您的当前位置:首页IDL学习笔记

IDL学习笔记

来源:爱玩科技网
IDL = Interface Description Language 示例 module Compute

{

typedef double radius; typedef long times; interface PI {

double getResult( in radius aRadius, in times time); }

}

1、OMG IDL中的枚举类型最多有232个标识,不允许空的枚举。 2、IDL联合类型:C的联合类型与switch的混合物

例如 enum PressureScale{ customary,metric };

union BarometricPressure switch( PressureScale) {

case costomary: float Inches; case metrice: default:

short CCs;

};

#:如果别名是customary,则float成员Inches是活动的。

#:识别名必须是整数类型(short、long、long long等,以及char、boolean或enumeration)

3、序列可以包含任何类型元素,可有界也可无界

typedef sequence Unbounded typedef sequence Bounded

4、IDL标识符不区分大小写。

5、数据类型

(1)基本数据类型:OMG IDL基本数据类型包括short、long和相应的无符号(unsigned)类型,表示的字长分别为16、32位。

(2)浮点数类型:OMG IDL浮点数类型包括float、double和long double类型。其中float表示单精度浮点数,double表示双精度浮点数,long double表示扩展的双精度浮点数。

(3)字符和超大字符类型:OMG IDL定义字符类型char为面向字节的码集中编码的单字节字符; 定义类型wchar为从任意字符集中编码的超大字符。

(4)逻辑类型:用boolean关键字定义的一个变量,取值只有true和false。 (5)八进制类型:用octet关键字定义,在网络传输过程中不进行高低位转换的位元

序列。

(6)any数据类型:引入该类型用于表示OMG IDL中任意数据类型。

6、struct NODE {

struct ColorPoint value; /* value of node */

struct NODE *pNext; /* pointer to next node */ };

这个IDL片段也是合法的C程序。应当注意的是,虽然它也是合法的C++程序,但IDL是使

用C约定而不是C++约定从类型命名空间中分离标识命名空间。这意味着 struct NODE {

ColorPoint value; // Not legal IDL

NODE *pNext; // Not legal IDL };

不是合理的IDL,因为ColorPoint和NODE名字必须用关键字struct来限定作用域。

因篇幅问题不能全部显示,请点此查看更多更全内容