[질문] 함수 선언과 정의에 관해..

zipsinworm의 이미지

소스를 분석하다 혹 궁금한게 생겨 질문 드립니다.

예를들어, 대부분 함수는

void test(int p)
{
printf("int : %d/n",p);
}

이렇게 사용하는데, 간혹 가다

void test(p)
int p;
{
printf("int : %d/n",p);
}

이렇게 사용하는 함수를 종종 봅니다.
둘다 똑같이 동작하는데 왜 아래 방식을 사용하는지 잘 모르겠습니다.

왜 저렇게 사용하는지, 아니면 사용할 수 밖에 없는건지 궁금합니다.

kewlbear의 이미지

두번째 방식은 ANSI C 표준이 정해지기 이전에 쓰던 방식입니다. 꼭 쓰셔야 하는 경우가 아니면 첫번째 방식으로 쓰십시요.

zipsinworm의 이미지

꼭 써야하는 경우가 어떤 경우인가요? ^^;

익명사용자의 이미지

아주아주 예외적인 경우를 제외하면 없다고 해도 무방하죠.

ktd2004의 이미지

ANSI C를 지원하지 않는 정말 정말 예전 컴파일러를 사용해야 할 경우가 아닐까요?
(Micom 컴파일러 중에는 아직도 있지 않을까요? ^^)