gpt4 book ai didi

java - 将 C 代码转换为 Java :Pointers

转载 作者:太空宇宙 更新时间:2023-11-04 02:14:17 25 4
gpt4 key购买 nike

我知道我们不能在 Java 中安全地访问对象的地址,我们永远不应该尝试做这样的事情。但我需要将此 C 代码转换为 Java。值的大小始终为 8 位。 C代码是这样的:

void merge(int value,unsigned short* outp, int x,int y, int width)
{
unsigned char *outc;
outc=(unsigned char *) outp + y*width +x;
*outc=value;
}

为了将其转换为 Java,我已将 unsigned short* outp 转换为 short outp[] 并将 unsigned char* outc 转换为 短路 []。然后我可以分部分赋值。但我面临的问题是,当这个函数被其他函数循环调用时,宽度每次都会增加,并且只有一个字节被分配给一个特定的单元格..

我试过这段 Java 代码:

void merge(int value, int outp[], int x, int y, int width)
{

if(outp[y*width + x] >0)
{
outp[y*width+x]=outp[y*width+x]<<8 +value;
}
else
{
outp[y*width+x]=value;
}
}

我该怎么做。请帮忙。谢谢。

最佳答案

在java中没有指针是“不可能”的。它具有与原始类型无关的引用,例如 char

因此,在 Java 中,我们通常使用返回值的方法,而不是像 C 程序员那样通过指针返回值:

char merge(int value,int x,int y, int width) {
char outchar;
/// your code...
return outchar;
}

关于java - 将 C 代码转换为 Java :Pointers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9908878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com