c언어의 함수에서 파라미터 관련된 질문입니다.

chsuk의 이미지

안녕하세요. 여름도 가고 이제 선선해 지네요~~~

찾아보기에도 에매하고 어딜 찾아봐야 할지 잘 몰라서 질문드립니다.

보통 함수를 만들때
int test(int a) {
....
} 라고 하지 않습니까??

그런데.. 어떤 코드를 보니깐..예를 들어 아래와 같이 되어있더군요.

int test(a)
int a;
{
printf("%d\n",a);
return 0;
}

이와같이 되어있더군요... gcc에서 컴파일 해봤더니 동작을 하더군요..잘..

사실 이런 코드는 처음 봤을 뿐더러 이렇게 동작하는게 신기하더군요.
어떤 매카니즘으로 이런식으로 동작하는지 궁금하네요.

질문 드립니다.
1. 이런 걸 찾기 위해서는 어떤 문서를 뒤져야지 정확하게 알 수 있나요?
2. 위의 함수가 동작하는 것은 어떻게 설명되어야 하는 건가요?
3. 아래식으로 하면 처음보다 좋은 점이 있을까요? 프로그램 습관이랄까 속도면이랄까...

감사합니다.
행복하세요~~~

cppig1995의 이미지

옛날에 쓰던 겁니다. ANSI C에서 prototype를 정의하면서 사라졌습니다.



디버깅 모드 - return문에 닿기까지의 5줄, 그러나 언제까지나 영원한 5줄... (from 天上智喜 - Graceful 4 - 07. 5cm)

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.