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中的相关数据类型是什么?
正如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)