从 C 导入:支持的功能

本部分描述将 C 数据类型映射为 MRM 数据类型时,C 导入器使用的缺省值。

下表显示 C 定义如何影响消息模型中的 XML 模型设置。有些 xsd 类型在类型后有“-”。这表明它是基于此类型的匿名简单类型。对于字符串,匿名类型的用途是添加长度限制;对于数字类型,用途是添加最小和/或最大值限制。

压缩数据结构数据类型在 C 导入器范围外。

C 数据类型 逻辑类型
Char xsd:string- length=1
Char[10] xsd:string- length=10
Char[10][3] xsd:string- length=3
Char[10][3][6] xsd:string- length=6
不带符号的字符型 xsd:unsignedByte  
Unsigned Char[2] xsd:unsignedByte  
带符号字符型 xsd:byte  
Signed Char[2] xsd:byte  
Int xsd:int  
Int[2] xsd:int  
Int[2][3] xsd:int  
Unsigned Int xsd:unsignedInt  
Short xsd:short  
Unsigned Short xsd:unsignedShort  
Long xsd:int  
Long Long Int xsd:long  
Float xsd:float  
Double xsd:double  
长型双精度(请参阅注 1) xsd:double  
<任何指针类型> xsd:hexBinary- length=(请参阅注 2)
<任何枚举>   (请参阅注 3)

下表显示 C 定义如何影响消息模型中生成的元素的物理 CWF 特性。

C 数据类型 CWF 物理类型 CWF 长度特性 其他 CWF 特性
Char 固定长度 Length Count = 1

Length Units = Bytes

 
Char[10] 固定长度 Length Count = 10

Length Units = Bytes

左对齐
Char[10][3] 固定长度 长度计数 = 3

(且最大出现次数 = 10)

长度单位 = 字节

左对齐
Char[10][3][6] 固定长度 长度计数 = 6

(且最大出现次数 = 30)

长度单位 = 字节

左对齐
不带符号的字符型 整数 Length Count = 1 Signed = no
Unsigned Char[2] 整数 Length Count = 1

(且最大出现次数 = 2)

Signed = no
带符号字符型 整数 Length Count = 1 Signed = yes
Signed Char[2] 整数 Length Count = 1

(且最大出现次数 = 2)

Signed = yes
Int 整数 Length Count = 4 Signed = yes
Int[2] 整数 Length Count = 4

(且最大出现次数 = 2)

Signed = yes
Int[2][3] 整数 Length Count = 4

(且最大出现次数 = 6)

Signed = yes
Unsigned Int 整数 Length Count = 4 Signed = no
Short 整数 长度计数 = 2 Signed = yes
Unsigned Short 整数 长度计数 = 2 Signed = no
Long 整数 长度计数 = 4 (请参阅注 4) Signed = yes
Long Long Int 整数 Length Count = 8 Signed = yes
Float Float Length Count = 4  
Double Float Length Count = 8  
长型双精度(请参阅注 1) Float Length Count = 8  
<任何指针类型>   (请参阅注 2)  
<任何枚举> 整数 (请参阅注 3)  
注:
  1. 不要将 C 导入器选项长型双精度的大小设置为 128 位。这不会成功导入。请使用缺省值 64 位。
  2. 长度计数按如下所示受 C 导入器选项地址大小的影响:
    • 对于 32 位,CWF 长度计数值 = 4 字节
    • 对于 64 位,CWF 长度计数值 = 8 字节。
  3. 枚举的类型和长度按如下所示受 C 导入器选项 enum 大小的影响:
    • 对于 1:逻辑类型 = xsd:byte,CWF 物理类型 = Integer,CWF 长度计数 = 1 byte。
    • 对于 2:逻辑类型 = xsd:short,CWF 物理类型 = Integer,CWF 长度计数 = 2 byte。
    • 对于 4:逻辑类型 = xsd:int,CWF 物理类型 = Integer,CWF 长度计数 = 4 byte。
    • 对于压缩:选择的最小表示是枚举适合的表示。
  4. 长型的长度按如下所示受 C 导入器选项地址大小的影响:
    • 对于 32 位:CWF 长度计数值 = 4 字节
    • 对于 64 位:CWF 长度计数值 = 8 字节。
  5. 将与 Java 语言关键字冲突的元素名称修改为以一个下划线字符作为前缀。
  6. 不支持 _Packed 关键字。仅支持 ANSI C 声明。
  7. 不支持 C long long 数据类型。
  8. 不支持 C++ 面向对象的扩展。仅支持 ANSI C 声明。
  9. 当 CWF 长度计数设置为 4 时,指针将被导入为 xsd:integer。
  10. 不支持递归的 C 结构。如果嵌套结构包含其名称与父结构相同名称的结构,则导入成功但逻辑定义是不正确的。要避免这种问题,确保嵌套结构的名称与外部的或父结构的名称不同。
相关概念
消息建模
消息模型
相关任务
开发消息模型
使用消息定义文件
使用消息模型对象
相关参考
消息模型引用信息
消息模型对象属性
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ad06890_