Java에서 Object의 주소에 안전하게 액세스 할 수 없다는 것을 알고 있으며 절대로 이와 같은 작업을해서는 안됩니다. 하지만이 C 코드를 Java로 변환해야합니다. 값은 항상 크기 8 bits
입니다. C 코드는 다음과 같이이다 :C 코드를 Java로 변환 : 포인터
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;
}
내가 short outc[]
에 short outp[]
및 unsigned char* outc
에 unsigned short* outp
를 변환 한 자바로 변환하기. 그렇다면 부분적으로 값을 할당 할 수 있습니다. 하지만 내가 직면하고있는 문제는이 함수가 다른 함수에 의해 루프에서 호출 될 때마다 너비가 증가하고 매번 1 바이트 만 특정 셀에 할당된다는 것입니다.
이 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에서 동일하게 다시 작성하십시오. 덧글을 추가하면 옆에있는 사람이 당신을 축복 해줄 것입니다. – questzen
@questzen 미안하지만 어떻게 해야할지 이해하지 못했습니다 .. –
한 단어 '가독성'. 다음 사람은 무슨 일이 일어나고 있는지 파악하기 위해 동일한 장애물을 거쳐야 할 것입니다. – questzen