c ++ copy string literal(来自C)[关闭]

问题描述 投票:0回答:1

我想将C字符串保存到C ++变量。这应该传递给C-API函数。

该字符串在C-API中定义为

#define  XI_PRM_BINNING_HORIZONTAL_MODE         "binning_horizontal_mode"

我想在交换机中选择字符串

char * binnMode;
...
binnMode = XI_PRM_BINNING_HORIZONTAL_MODE;

但这失败了因为C-literal被定义为char str[](C ++ 11)

我想将字符串传递给期望的函数

xiSetParamInt(IN HANDLE hDevice, const char* prm, const int val)

我如何定义binnMode以使其工作?

c++ c char
1个回答
6
投票

请注意,参数是const char*,而不是char*

这很方便,因为它也是binnMode所需要的。

字符串文字是不可变的,并且(在C ++中)const。你的是一个const char[<length+1>](不知道你在哪里听到它是一个char[]),它很好地衰减到const char*

© www.soinside.com 2019 - 2024. All rights reserved.