# 基础数据类型映射

下表概括了接口定义语言(IDL)支持的基本数据类型,以及基本类型到 C++的映射关系。

注意:boolean 在开发使用时可赋值为 0 或 false 表示 false 值,其他值均表示 true。

表 1 IDL 基础数据类型 C++映射关系
IDL C++
short short
long long
unsigned short unsigned short
unsigned long unsigned long
float float
double double
char char
boolean unsigned char
octet unsigned char
long long long long
unsigned long unsigned long

# IDL 定义示例

IDL 基础数据类型在 idl 文档中定义示例(以结构体为例):

struct  UserDataType{
	short s;
	long l;
	unsigned short us;
	unsigned long ul;
	float f;
	double d;
	char c;
	boolean bln;
	octet o;
	long long ll;
	unsigned long long ull;
};

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 代码示例

生成测试用例后在 pub.cpp 中创建数据样本后添加赋值语句:

/* 6. 创建一个数据样本 */
/* 建议:该数据需要申请空间后使用,使用后用户需要调用delete_data进行内存等资源的释放*/
	UserDataType *instance = NULL;
	instance = UserDataTypeTypeSupport::create_data();
	instance->s = 1;
	instance->l = 2;
	instance->us = 3;
	instance->ul = 4;
	instance->f = 5.5;
	instance->d = 6.6;
	instance->c = 'c';
	instance->bln = true;
	instance->o = 'o';
	instance->ll = 7;
	instance->ull = 8;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 数据收发示例

图 1 为使用IDL 定义示例中结构体生成的测试 demo,在 Windows 系统上启动发布端、在 Linux 系统启动订阅端后的数据收发情况。

图 1 基础数据类型收发测试(Windows->linux)
图 2 为使用**IDL 定义示例**中结构体生成的测试 demo,在 Linux 系统上启动发布端、在 Windows 系统启动订阅端后的数据收发情况。
图 2 基础类型 demo 收发测试(Linux->Windows)