나는 거대한 오래된 C 프로그램을 찾고 있으며 C++로 변환했다.함수 선언과 해결되지 않은 외부
많은 복잡한 전처리 프로그램이 여러 가지 구성에서 다양한 플랫폼에서 실행되어야한다는 사실에 연결된 많은 사전 처리기 해킹이 있습니다.
하나의 파일 (file1.c
)에서 나는 입니다. 전화는functionA()
입니다.
다른 파일 (file2.c
)에 의 정의이 functionA()
입니다.
불행히도 기능의 정확한 유형은 어리둥절한 방법으로 만들어진 매크로 모음에 의해 지정됩니다.
functionA가되지 않은 외부 기호이다
지금 링커 불평한다.
file1.c에 표시된 프로토 타입이 file2.c에 표시된 함수의 실제 정의와 약간 다른 것으로 의심됩니다.
_cdecl
과 fastcall
사이, 그리고 __forceinline
이 있거나없는 사이의 미스 매치로 인해 미묘한 차이가 발생할 수있는 범위가 많이 있습니다.
표시하는 몇 가지 방법이 있나요 정확히 컴파일러가 file2.c
에 반대 file1.c
으로 볼 때 functionA()
의 유형이 어떻게 생각하는지?
+1. 고마워요 ... 그것이 새로운 질문에 넣은 더 깊은 신비를 드러 냈지만 다소 도움이되었습니다. – Mick