사실 이번뿐만이 아니라 깃허브에 올라와있는 코드들을 볼때 항상 직면하는 문제입니다.
라이브러리에 예제 파일이 있고, 거기서 include하는 헤더 파일이 있는데
막상 그 헤더파일을 뜯어보면 형식만 있고 내용이 없는 경우가 대부분이었습니다(함수 이름과 받는 인수만 적어놓고 코드가 없음)
이런 건 자바의 인터페이스 개념처럼 형식만 정해놓고 진짜 처리 코드는 따로 있는건가요?
지금 보고 있는 코드는
커맨드라인 프로그램 코드:
입니다.
- dc official App
헤더말고 .c / .cpp 를 보시오
앗 그럼 파일 더 찾아봐야겠네요 - dc App
참고로 헤더는 생각한대로 인터페이스가 맞지만 c++은 헤더에다 구현까지 적는 경우도 있슴미다
아니면 .so나 .o에 구현 숨겨놓은 거 아님? - dc App
빌드하는 방법이랑 ndk코드 있는거보니까 그런건 아닌거같긴한데요.. 음... - dc App
rubberband/src/StretcherImpl.cpp 이거 아님?
오 감사함다 덕분에 찾았네요 - dc App
구현부 잘 모르겠다 싶으면 ide로 열어서 go to definition 기능 써도 되고, 깃헙 검색창에다가 그 함수명 암거나 좀 유니크해보이는거 검색해보면 구현부 쉽게 찾을 수 있음
바로 실천에 옮겨보겠읍니다 - dc App
https://github.com/breakfastquay/rubberband/blob/master/src/StretcherImpl.cpp
자바 인터페이스랑 c의 헤더는 좀 다른 의미임. 자바 인터페이스는 클래스와 상속을 위해서 만든 기능이지만, c의 헤더와 소스를 분류하는 것은 컴파일한 오브젝트를 효율적으로 관리하고 라이브러리 API 접근을 위해서 씀. 예를 들면 서드파티는 벤더가 자신이 만든 라이브러리의 소스파일을 감추고 헤더만을 제공해서, 이용자가 사용할 수 있게하는 것도 여기에 포함되는 거고
오... 그런이유가 - dc App
사실 헤더는 걍 텍스트 붙여넣기라서..
헤더란게 원래그런거잖아여