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