C/C++中的Char数据类型

use*_*497 5 c c++ arrays string char

我试图用Java调用C++ DLL.在其C++头文件中,有以下几行:

    #define a '102001'
    #define b '102002'
    #define c '202001'
    #define d '202002'
Run Code Online (Sandbox Code Playgroud)

a,b,c和d是什么类型的数据类型?他们是char还是char数组?我应该转换为Java中的相关数据类型是什么?

das*_*ght 5

正如Mysticial指出的那样,这些都是多字符文字.它们的类型依赖于实现,但它可能是Java long,因为它们使用48位.

在Java中,您需要long手动将它们转换为:

static long toMulticharConst(String s) {
    long res = 0;
    for (char c : s.toCharArray()) {
        res <<= 8;
        res |= ((long)c) & 0xFF;
    }
    return res;
}

final long a = toMulticharConst("102001");
final long b = toMulticharConst("102002");
final long c = toMulticharConst("202001");
final long d = toMulticharConst("202002");
Run Code Online (Sandbox Code Playgroud)