-1
mMIPS 명령어 세트 내에서 하드웨어 클리핑을 처리하는 .c 파일을 컴파일하려고하는데 라인에서 '매크로 인수의 수가 일치하지 않습니다'라는 오류가 발생합니다. 'results = sfu1' 'lcc -o mips_mem.bin image.c로 파일을 컴파일하려고 할 때. 나는 그것이 왜이 오류를주는 지 이해하지 못합니다.
이것은 image.c입니다 :오류, 매크로 계약의 불일치
#define WIDTH 8
#define HEIGHT 8
#define sfu0(a, b) ((a) +((b) + *(int *) 0x12344321)) //clipping
#define sfu1(a, b) ((a) -((b) + *(int *) 0x12344321)) //dividing by 13
#define sfu2(a, b) ((a) +((b) - *(int *) 0x12344321)) /less multiplications
void main(void)
{
int a, b, result;
int max = 255;
char *buf_i = (char*)0x401000, *buf_o = (char*)0x402000;
for (a = 1; a < HEIGHT - 1; a++)
{
for (b = 1; b < WIDTH - 1; b++)
{
result = sfu1((
-7*(int)buf_i[(a - 1) * WIDTH + b - 1] +
5*(int)buf_i[(a - 1) * WIDTH + b ] +
2*(int)buf_i[(a - 1) * WIDTH + b + 1] +
-1*(int)buf_i[ a * WIDTH + b - 1] +
15*(int)buf_i[ a * WIDTH + b ] +
-1*(int)buf_i[ a * WIDTH + b + 1] +
2*(int)buf_i[(a + 1) * WIDTH + b - 1] +
5*(int)buf_i[(a + 1) * WIDTH + b ] +
-7*(int)buf_i[(a + 1) * WIDTH + b + 1] +
128));
/* Clipping */
buf_o[a * WIDTH + b] = ((result) + ((max) + *(int *) 0x12344321));
}
}
}
누군가가 해결 될 수있는 일이 오류 수단과 방법을 설명 할 수?
코드가 정의되지 않은 동작을 호출합니다. – Olaf