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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c ++ copy string literal(来自C)[关闭]相关的知识,希望对你有一定的参考价值。

我想将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以使其工作?

答案

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

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

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

以上是关于c ++ copy string literal(来自C)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python 3,ast.literal_eval(node_or_string) 中是不是有任何已知的安全漏洞?

String literals should not be duplicated

SyntaxError: EOL while scanning string literal

SyntaxError: EOL while scanning string literal

Python_报错:SyntaxError: EOL while scanning string literal

Oracle问题之literal does not match format string