1

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

  1. C++ - 静态字符 **gprs; 在 Java 中 - 私有静态字符串 [] 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;

谢谢

4

3 回答 3

2
  1. private static String[] gprs;
  2. private static String;// 你愿意在这里有一个字符串,但我不确定 - 取决于上下文。
  3. 简单地rm = new DRMK();
  4. 这取决于 PMSK 结构的结构。您应该编写一个方法,该方法在语义上将一些数据从 String 复制到对象。
于 2011-05-16T13:08:29.827 回答
1
  1. 这取决于用于什么gprs。没有自动解决方案。但如果是人物,String[] 似乎更合适。

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

  3. 你什么都不需要。Javanull在调用构造函数之前自动将所有成员变量设置为 0 或道德等价物。

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

于 2011-05-16T13:07:02.970 回答
1
C++ - static char **gprs;

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

C++ - static char *mask;

给定“掩码”名称,我会使用字节而不是字符。

C++ - memset((char *)&rm,'\0',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 中做到这一点?你猜对了……字节数组。

于 2011-05-16T14:49:48.243 回答