[C] 예전 스타일 함수 선언. K&R-Style Declarations
2019. 7. 23. 13:56ㆍ프로그래밍/C/C++
728x90
728x90
들어가며
- 동료가 회사 c 코드에서 특이한 걸 발견해서 좀 찾아봤다.
- 함수인데 인자는 괄호 안에 있지만 인자의 타입은 마치 클래스의 initializer-list와 비슷하게 선언된 형태.
int foo(a, b, c)
int a;
int b;
int c;
{
// some code
return 0;
}
- 신기하다. 어떻게 함수가 이렇게 생겼을 수가...
K&R Style Declarations
- identifier-list form 이라 부르기도 하는듯 하다. 현대 C/C++에서 사용하는 방식은 parameter type-list form.
- C언어가 최초로 나왔을 때, 함수 프로토타입에 대한 스펙이 모호했다고 한다.
- 전방 선언도 있었지만 이도 리턴 타입에 대한 정의일 뿐 었다고 한다.
- 그래서 함수 선언 시 인자에 대한 타입 지정이 명확하지 않기에 위와 같은 방식으로 선언하고 사용했다고 한다.
결론
- 현대 스타일로 고치면 될듯 하다.
- 자잘한 문제가 생길 수 있다고 하니 궁금하면 REF 참고.
int foo(int a, int b, int c)
{
// some code
return 0;
}
REF
728x90
반응형
'프로그래밍 > C/C++' 카테고리의 다른 글
[C/C++] shift operator 사용 시 주의 (0) | 2019.07.19 |
---|---|
[VS] tab, space 보기 (0) | 2019.02.27 |
[Boost] 설치 (0) | 2016.03.19 |
[C++] for each 써보기 (2) | 2016.01.19 |
[C++, Json] jsoncpp 사용하기 (5) | 2016.01.06 |
[C/C++] 삼항 연산자 (4) | 2015.11.27 |
[C++11] 주요 기능들 (0) | 2015.09.07 |