이 코드를 수행하기 위해 노력하고있어 ...C 함수 호출
char mysmooth1_ descr[] = "my smooth1: My smooth1 replaced avg() func. and assign sum to pixel";
void mysmooth1 (int dim, pixel *src, pixel *dst)
{
int i, j;
int ii, jj;
pixel_ sum sum;
pixel current_ pixel;
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++)
{
initialize_pixel_sum(&sum);
for(ii = max(i-1, 0); ii <= min(i+1, dim-1); ii++)
for(jj = max(j-1, 0); jj <= min(j+1, dim-1); jj++)
accumulate_sum(&sum, src[RIDX(ii, jj, dim)]);
{
current_ pixel.red = (unsigned short) (sum.red/sum.num);
current_ pixel.green = (unsigned short) (sum.green/sum.num);
current_ pixel.blue = (unsigned short) (sum.blue/sum.num);
dst[RIDX(i, j, dim)] = current_pixel;
}
}
}
이 코드 accumulate_ 합 함수 호출을 대체 ...
static void accumulate_ sum (pixel_sum *sum, pixel p)
{
sum->red += (int) p.red;
sum->green += (int) p.green;
sum->blue += (int) p.blue;
sum->num++;
return;
}
완성 된 코드 함수 호출을 sum의 실제 코드와 바꾸려면 다음과 같은 코드를 사용합니다. ...
char mysmooth2_descr[] = "my smooth2: My smooth1 replaced avg() func. and assign sum to pixel and accumulate sum func.";
void mysmooth2(int dim, pixel *src, pixel *dst)
{
int i, j, num;
int ii, jj;
pixel_sum sum;
pixel current_pixel;
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++)
{
initialize_pixel_sum(&sum);
for(ii = max(i-1, 0); ii <= min(i+1, dim-1); ii++)
for(jj = max(j-1, 0); jj <= min(j+1, dim-1); jj++)
sum.red += (int) p.red;
sum.green += (int) p.green;
sum.blue += (int) p.blue;
sum.num++;
{
current_ pixel.red = (unsigned short) (sum.red/sum.num);
current_ pixel.green = (unsigned short) (sum.green/sum.num);
current_ pixel.blue = (unsigned short) (sum.blue/sum.num);
dst[RIDX(i, j, dim)] = current_pixel;
}
}
}
지금 나는 그것이 올바르게했다고 생각했지만 코드를 컴파일하지 못하게하는 오류가 계속 발생합니다 ... 누군가 내가 잘못하고있는 것을 말해 줄 수 있다면 그것은 훌륭 할 것입니다. 나는 어딘가에 괄호가 빠졌습니까? 어딘가에 더 많은 코드를 추가해야합니까? 앞으로이 작업을 수행하는 데 도움이 될만한 조언이나 예가 있으면 대단히 감사하겠습니다. 고맙습니다. 실제 코드와 함수 호출 accumulate_sum을 교체 할 때
는 사실 내가가 뭔가를 엉망 이니까 실현 ... 내가 망쳐 제안 ... 어쩌면 그와 후크
나는 인라인 함수를 사용하고 싶지 않다. 그냥 함수 호출 accumulate_sum을 실제 코드로 바꾸고 싶다. –
코드를 들여 쓰고 난 후, 문제를 더 쉽게 볼 수있다. –
왜 그런지 궁금하다. 당신은 인라인을 사용하고 싶지 않습니다. IMHO 인라이닝은 속도 편익과 가독성을 결합합니다. – fvu