gpt4 book ai didi

java - java和C++之间的字符串大小关系

转载 作者:太空狗 更新时间:2023-10-29 20:45:34 26 4
gpt4 key购买 nike

我正在开发基于 Java 构建的某个应用程序。 java 层与 C++ 层对话,C++ 层执行从数据库形成 sql 查询的逻辑并将结果返回给 Java 层。

举个简单的例子:

Java 方面

nameField = new JTextField(20) //20 chars max length
name = t.getText() // name is sent to CPP layer

在 CPP 层上,接收来自 java 层的名称并将其存储在局部变量 cppName 中。我对 CPP 层中使用的变量声明感到困惑。他们中的大多数是这样声明的:

char cppName[20*4+1]

我想知道这里20*4+1的意义。在cpp端声明所有大小为javaSize*4+1的变量的原因。

最佳答案

java代码中的字符是UNICODE吗?如果是这样,单个 char 不足以存储 UNICODE 字符,比率为 4:1。最后一个字符 (+1) 是空终止符。

所以在 C++ 端需要 4 个字节,即 4 个 char 来存储单个 Java 字符,而 C++ 中的 char 表示的字符串是空终止的(最后一个字符必须是'\0'), 所以 20*4+1.

关于java - java和C++之间的字符串大小关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10477888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com