자문자답하게 됐군요.
많은 탐색과 실험을 통해 다음과 같이 구문을 바꾸니 에러 메시지가 사라졌습니다.
void interrupt new_interrupt(void);
=>void interrupt new_interrupt(...);
void interrupt(*old_interrupt)();
=>void interrupt(*old_interrupt)(...);
void에 대한 의미적 용도 해석이 달라진 모양입니다.
갸우뚱 님이 쓰신 글 :
: void interrupt new_interrupt(void);
:
: main() 함수 위에서 이렇게 선언을 하면, 두 가지 에러 메시지가 나옵니다.
:
: - Size of 'interrupt' is unkown or zero.
: - Declaration syntax error.
:
: 또 main() 함수 안에서
: void interrupt(*old_interrupt)();
:
: 이렇게 함수 포인터를 선언하면, 아래와 같은 메시지가 나옵니다.
:
: - Parameter names are used only with a function body.
: - Declaration missing ;.
:
: 그런데, main() 함수 위에서
: void interrupt(*old_interrupt)();
:
: 이렇게 함수 포인터를 선언하면, 아래와 같은 에러 내용으로 바뀌네요.
:
: - ) expected.
:
:
: 터보 C++ 3.0에서는 저 구문에는 이상이 없는 것으로 나옵니다.
: 어떻게 바뀐 것인지...
: 올바른 구문을 알려 주세요.
|