Ich weiß, dass wir die Adresse eines Objekts nicht sicher in Java zugreifen können und wir sollten niemals versuchen, etwas in der Art zu tun. Aber ich muss diesen C-Code in Java konvertieren. Der Wert hat immer die Größe 8 bits
. Der C-Code ist wie folgt:Konvertieren von C-Code in Java: Zeiger
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;
}
Um es in Java zu umwandeln ich unsigned short* outp
-short outp[]
und unsigned char* outc
-short outc[]
umgewandelt haben. Dann kann ich Werte in Teilen zuweisen. Aber das Problem, das ich bin vor, dass, wenn diese Funktion in einer Schleife durch eine andere Funktion aufgerufen wird, die Breite jedes Mal erhöht wird und nur ein Byte zu einer bestimmten Zelle zugeordnet ..
Ich habe versucht, dieses Java-Code:
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;
}
}
Wie kann ich das tun. Bitte helfen Sie. Vielen Dank.
Bitte tun Sie das nicht. Dies beeinträchtigt die Lesbarkeit erheblich. Versuchen Sie, die Logik zu verstehen und das Gleiche in Java neu zu schreiben. Fügen Sie auch Kommentare hinzu, die Person neben Ihnen wird Sie segnen. – questzen
@questcence Sorry, aber ich habe nicht verstanden, was nicht zu tun .. –
ein Wort 'Lesbarkeit'. Die nächste Person müsste die gleichen Hürden nehmen, um herauszufinden, was vor sich geht. – questzen