학습 목표 -C 및 기타 c 기반 언어 #includes와 #imports를 헤더 파일에 넣어야한다는 것을 알게되었습니다.
아니요 - 기반 언어는 아닙니다. 가능한 경우 구현 파일에 입력해야합니다. 당신은 항상 zero-dependency 헤더를 생성 할 수는 없지만 그것을 최소화해야한다.
기반 언어는 특히 종속성과 포함이 매우 복잡하거나 불필요한 포함 (우연히 더 많은 종속성 도입)이있는 경우 컴파일하는 데 시간이 오래 걸립니다.
@ 클래스도 거기에 있습니다. 최근에 사과와 웹 소스 코드의 예제 코드를 보면 @class가 헤더에 있고 모든 가져 오기가 구현 파일에 있습니다. 어느 것이 맞습니까?
사용 앞으로 선언 (@class NAME;
, @protocol NAME;
, struct NAME
, 클래스 이름,`등) 어디든지 당신이 할 수있는.
둘 다 이유가 있습니까?
헤더를 포함하는 것이 지연된 방법이므로 빌드 시간이 느려지고 많은 의존성이 발생합니다. 많은 수의 include/import 선언문을 작성할 필요가 없기 때문에 편리합니다. 그러나 프로그램을 사용해야하는 사람들에게는 배려가되지 않습니다.
또한 헤더 파일을 가져 오는 경우 왜 @class 선언을 제공해야합니까?
클래스 인터페이스가 이미 표시되어 있거나 (이미 포함되어 있거나 다른 파일이 선언 한 경우) 둘 다 필요하지 않은 경우 매우 단순한 경우를 제외하고 유형을 사용하려는 경우 인터페이스가 표시되어야합니다.
빌드 시간이 길어지면 실수를 바로 잡을 수 없을 것입니다. 올바른 방법을 사용하여 배우고 구현하는 것이 가장 좋습니다. 복잡한 C 프로젝트를 개발하지 않았다면 컴파일하는 동안 얼마나 많은 시간을 낭비하게 될지 매우 놀랄 것입니다.
귀하의 프로그램이 결코 사소해서 결코 공유되거나 재사용되지 않을 것이라고 생각되면 원하는대로하십시오.
행운을 빈다!
@Sherm, good 발견. –