기초질문.. 매크로 에 대해서
글쓴이: 해봐 / 작성시간: 일, 2005/02/20 - 1:04오전
특정 소스를 보다가 잘 모르겠어서 질문 올립니다.
#ifndef __P #if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) #define __P(prototype) prototype #else #define __P(prototype) () #endif #endif
여기서 __P 매크로 가
#define __P(prototype) ()로 될때 어떤 효과가 있나요?
Forums:
preansi C 등에서 함수 선언에 아무 인자 값을 주지 않게하려고 할
preansi C 등에서 함수 선언에 아무 인자 값을 주지 않게하려고 할 때 사용됩니다.
---
http://coolengineer.com
[quote="pynoos"]preansi C 등에서 함수 선언에 아무
함수 선언에 아무 인자값을 주지 않는 다는 것이
무슨 의미인지요?
int plus(); 와 같이 프로토타이핑 한다는 의미인가요?
이와 같은 맥락이라면은,..
와 같이 해도 컴파일이 되는건 무슨 이유?
ansi 이전에는[code:1]int plus();
ansi 이전에는
int plus();
와 같은 방식으로도 선언했었습니다. 현재는 preansi C만 지원하는 컴파일러는 거의 없어졌기 때문에 위와 같은 선언은 거의 씌이지 않습니다만, 과도기적인 상태에서는 preansi C만 지원하는 컴파일러와 ansi까지 지원하는 컴파일러를 모두 지원하기 위해 위와 같은 매크로를 도입하였습니다.
C++과 달리 C에서는 인자에 따라 함수가 오브젝트로 만들어지는 꼴이 달라지지 않기 때문에 인자 없이 선언해도 그다지 큰 문제가 없었습니다만, 지금은 전혀 권장하지 않는 방법이된 것이죠.
---
http://coolengineer.com
댓글 달기