대답 1:

함수부터 시작하겠습니다. 함수에는 프로토 타입이있을 수 있으며 정의가 있어야합니다. 정의에서 함수의 본문 또는 함수의 논리는 작성되며 함수 프로토 타입의 경우 함수 서명 만 나타납니다 (즉, 함수 반환 유형, 함수 이름 및 매개 변수 유형).

라이브러리의 경우 : 일반적으로 함수 정의가 작성되며 일반적으로 컴파일 된 코드입니다. 라이브러리의 소스 코드가 없을 수도 있습니다. 일반적으로 C 정적 및 동적에는 두 가지 유형의 라이브러리가 있습니다. 정적 라이브러리의 확장자는 * .lib이고 동적 라이브러리의 확장자는 * .dll입니다. 두 라이브러리의 차이점은 다른 날의 또 다른 이야기입니다.

헤더의 경우 : 일반적으로 함수 프로토 타입 및 관련 변수 선언이 작성됩니다. C 코드에서 라이브러리를 사용하고 함수 프로토 타입을 선언하지 않고 라이브러리 함수를 호출하면 코드 컴파일에서 오류가 발생합니다. 따라서 모든 라이브러리에는 사용 가능한 모든 함수 프로토 타입을 나열하는 헤더가 있습니다. 일반적으로 헤더의 파일 확장자는 * .h입니다.

또 다른 주요 차이점은 빌드 전처리 단계에서 헤더 파일이 프로젝트에 포함되고 빌드 프로세스의 링크 단계에서 라이브러리가 링크된다는 것입니다.