sonumb

함수 선언 시 매개 변수는 없다는 건 void를 뜻한다? 본문

개발자 이야기/C/C++

함수 선언 시 매개 변수는 없다는 건 void를 뜻한다?

sonumb 2011. 10. 14. 09:56
아래 코드를 보시죠.
#include <stdio.h>
#include <unistd.h>

void foo();     /* void 매개변수?? */

int main ( void )
{
    foo(3,4);
    return 0;
}


void foo(a,b)  /* K&R 스타일.. */
    int a;
    int b;
{
    printf("%d %d\n", a,b);
    return;
}
함수선언에 매개변수로 아무것도 넣지 않았습니다만, 
함수 정의부에서는 인자를 넣고, 파일을 저장하고 컴파일하면 잘됩니다.  심지어 실행도 잘됩니다! -_-
이는 논란의 소지가 될 수 있겠군요.

결론: 따라서 함수선언 시, void를 명시적으로 해야합니다.
  
  
반응형