C++对Java代码转换的疑问

C++ to Java Code Conversion doubts

本文关键字:转换 代码 Java C++      更新时间:2023-10-16

我正在将一些代码从c ++转换为Java。有以下疑问-

  1. C++ - 静态字符 **GPRS;在 Java 中 - 私有静态 String[] gprs;或私有静态字节[] gprs;

  2. C++ - 静态字符 *掩码;在 Java 中 - 私有静态字节掩码;(正确吗?

  3. C++ - memset((char *)&rm,'\0',sizeof(DRMK));//这里DRMK是一个结构体。rm 是 DRMK 的对象。所以在java中,我必须创建一个类,在声明变量时,我必须将单个值设置为0。这是对的吗?

  4. C++ - memcpy (&wp, (PMSK *)p_msk + (long)(x - 1), sizeof(PMSK));如何在 Java 中镜像这一点。PMSK 是这里的结构体。
    在哪里 - 静态 PMSK wp; PMSK *下午; 静态字符 *p_msk;

谢谢

  1. private static String[] gprs;
  2. private static String;//你愿意在这里有一个字符串,但我不确定 - 取决于上下文。
  3. 简单rm = new DRMK();
  4. 这取决于PMSK结构的结构。您应该编写一个方法,该方法在语义上执行一些从 String 到对象的数据复制。
C++ - static char **gprs;

取决于 gprs 的使用,但我会说(通过查看代码的其余部分)byte更合适。一个字节数组。

C++ - static char *mask;

我会使用一个字节而不是一个给定"掩码"名称的字符。

C++ - memset((char *)&rm,'',sizeof(DRMK)); 

如其他回答所述...只需要创建一个新的 DRMK 实例。

C++ - memcpy (&wp, (PMSK *)p_msk + (long)(x - 1), sizeof(PMSK)); 

如果你问我,这是一个按位掩码。wp 的值将是 (x-1) 字节从 p_msk 开始的内存位置的任何值。基本上,它会将大小sizeof(PMSK)从 p_msk+(x-1) 开始的内存块复制到 wp 中。如何在Java中做到这一点?你猜对了...字节数组。

  1. 这取决于gprs的用途。 没有自动解决方案。 但如果是角色,String[]似乎更合适。

  2. 同样,这取决于如何使用mask; Byte[]String[] .

  3. 你不需要任何东西。 Java 自动设置所有成员变量为 0、null或之前的道德等价物调用构造函数。

  4. 如果我正确理解代码,您需要提供Java 类的复制构造函数,并调用它。