const char *与字符串文字的使用

泽维尔:

我正在使用外部C语言编写的Modbus库,通过串行连接从Linux机器连接到Microntroller Modbus从站。我还使用wxWidgets在Linux机器上创建应用程序,该机器在后台运行Modbus主站。

Modbus功能之一接受Modbus主站应连接到的串行端口的名称。在我的Linux机器上,是/dev/ttyS4在我使用的函数中,参数类型定义为const char*当我将参数作为字符串文字传递时,即"/dev/ttyS4"函数正常工作。但是,当我第一次定义变量时,如下所示:

const char mbPort[] = {'/', 'd', 'e', 'v', '/', 't', 't', 'y', 'S', '4'};

然后将该变量传递给函数,它将不起作用-我不确定为什么会这样。在Windows中以类似方式传递变量时,它可以正常工作。在Windows中,我的mbPort变量如下所示:

const char mbPort[] = { '\\', '\\', '.', '\\', '\\', 'C', 'O', 'M', '5' };

所以现在我不确定这是我的代码中是否有错误,还是这与我使用的操作系统有关。这是我正在使用的Modbus函数的声明:

modbus_t* modbus_new_rtu(const char *device, int baud, char parity, int data_bit, int stop_bit);

任何帮助将不胜感激。

阿德里安·摩尔(Adrian Mole):

将值添加'\0'到初始化程序列表的末尾。也许在某些编译器版本中,内存中的数据之后恰好为零,但是您不能依靠这一事实。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从C ++中的字符串文字返回const char *吗?

字符串文字vs const char *函数重载

如何使用字符串文字初始化 const char []

在字符串中加入 const char*

const char *是字符串还是指针

如何比較 const char* 字符串?

为什么要使用const char *形式的字符串

由c ++字符串类定义的字符串文字是否为const char []类型

由c ++字符串类定义的字符串文字是否为const char []类型

C ++-char const * const *-<读取字符串的错误>

一次将字符串文字常量定义为char const *和wchar const *

为什么在这里使用静态char const *而不是字符串文字会有所不同?

C /使用动态malloc复制字符串,从const char * org到char ** cpy

qFatal参数:将QString转换为const char *会导致警告“格式字符串不是字符串文字”

为什么返回带有字符串文字的const char *的函数起作用?

返回从函数分配了字符串文字的const char *是否安全?

可以将字符串文字传递给采用 const char* 的函数吗?

在方法调用中带有字符串文字的C ++ const char *

从int转换为c字符串(const char *)失败

在存储在const char数组中之前修改字符串

从const char *转换为Swift字符串

const volatile char字符串无法正确打印

创建字符串如何改变const char *指向的值?

从Swift字符串转换为const char *

将字符串转换为const * char

C ++-从const char *复制到字符串

在C ++上使用const char(result GetComputerName)的串联字符串

使用const cast将标准字符串转换为char *

声明“constexpr char*”字符串时是否必须使用 const 关键字?