【问题标题】:C++ to Java Code Conversion doubtsC++ 到 Java 代码转换的疑惑
【发布时间】:2011-05-16 23:14:33
【问题描述】:

我正在将一些代码从 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;

谢谢

【问题讨论】:

    标签: java c++ bits


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

    【讨论】:

    • 是的 1,2 存储在 char gprs 中的数据是十六进制的。所以我认为 Byte 会更合适,因为稍后会对它们进行逻辑 OR/AND 操作
    【解决方案2】:
    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 的值将是从p_msk 开始的 (x-1) 个字节的内存位置的任何值。基本上,它会从 p_msk+(x-1) 开始将一块大小为 sizeof(PMSK) 的内存复制到 wp 中。 如何在 Java 中做到这一点?你猜对了……字节数组。

    【讨论】:

      【解决方案3】:
      1. 这取决于 gprs 的用途。没有 自动解决方案。但如果是字符,String[] 似乎更合适。

      2. 同样,这取决于mask 的使用方式;任何一个 Byte[]String[]

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

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

      【讨论】:

      • 我会使用byte 而不是Byte
      猜你喜欢
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 2015-02-10
      • 2013-01-07
      • 1970-01-01
      相关资源
      最近更新 更多