# 字符串类型(string)
以下为 IDL 中字符串至 C++语言的映射:
表 1 IDL 字符串类型 C++映射关系
IDL | C++ |
---|---|
string | char * |
string<10> | char * |
IDL 中字符串类型分为定界字符串和不定界字符串两种,定界字符串转换后字符串长度最大值为 255,不定界字符串长度范围由“<>”中的值决定,如表 2 中值为 10 则转换后的字符串长度最大值为 10。
# IDL 定义示例
接口定义语言(IDL)字符串类型在 idl 文档中定义(以结构体为例):
struct UserDataType{
string str; //不定界字符串(1-255)
string<10> strs;//定界字符串(1-10)
};
1
2
3
4
5
2
3
4
5
# 代码示例
生成测试用例后在 pub.cpp 中创建数据样本后添加赋值语句:
/* 6. 创建一个数据样本 */
/* 建议:该数据需要申请空间后使用,使用后用户需要调用delete_data进行内存等资源的释放*/
UserDataType *instance = NULL;
instance = UserDataTypeTypeSupport::create_data();
char str[5] = "str";
char strs[5] = "strs";
strcpy(instance->str, str);
strcpy(instance->strs, strs);
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 数据收发示例:
图 1 为使用IDL 定义示例中结构体生成的测试 demo,在 Windows 系统上启动发布端、在 Linux 系统启动订阅端后数据收发情况。
图 1 字符串类型数据收发示例(Windows->Linux)
图 2 为使用 IDL 定义示例中结构体生成的测试 demo,在 Windows 系统上启动订阅端、在 Linux 系统启动发布端后数据收发情况。
图 2 字符串类型数据收发示例(Linux -> Windows)
← 基础数据类型映射 结构类型(struct) →