버그좀 ..봐주세요..
글쓴이: 하하 / 작성시간: 금, 2004/04/16 - 4:15오후
typedef void func(void *); int func_pointer(func); void tmpA() { printf("test\n"); } int func_pointer(func *arg) { arg(); } main() { func *tmp; tmp = tmpA; func_pointer(tmp); }
main.c: In function `func_pointer': main.c:12: too few arguments to function
GG 상태 임돠..
Forums:
...
컴파일러가 말하는 대로입니다. 굳이 더 자세하게 설명할 필요는 없을듯 싶네요.
무엇이 잘못되었는지.. 적은 아규먼트라 함은..도무지..이
무엇이 잘못되었는지.. 적은 아규먼트라 함은..
도무지..
이걸 짜게된 생각 부터가.. 논리가 안 맞더라도.
원인을 알고 싶습니다.
해당 에러에 대해서요.. ㅠㅠ
“바람에게도 길은 있다. 나는 비로소 나의 길을 가느니. 길은 언제나 어디에나 있다.”
.....
냠.
main.c 의 12번째 라인에서 "too few argument"
즉, 12번 라인에서 어떤 함수를 호출했는데,
그 함수가 요구하는 아규먼트보다 적은 아규먼트를 넘겨줬다는 이야기입니다.
P.S.)
12번째 라인이라면 arg(); 일듯 싶군요.
맨 윗줄부터 코드를 차근차근 살펴보시기를...
..
2가지 버그가 있군요.
첫번째.
=> 파라메터로 void *를 넣어주어야 하는데..실제 호출할때는 arg()로 했으니
too few arguments to function 에러가 난것입니다.
문맥상 void * 를 void 로 고쳐주세요.
두번째
int func_pointer(func);
실제 정의부에서는 (fund *)로 하시는 군요.
==> int func_pointer(func *); 로 고치시면 될 것같습니다.
가끔 pointer도 헷갈린데 function pointer는 자주 실수하는
부분같습니다. 저도 개념을 충분히 알고 있다고 생각햇는데
실제로는 몇번 돌려보고^^ 찾았내요.
즐 플그래밍 하세요.
댓글 달기