본문 바로가기

프로그래밍 언어 개념/C

[C언어] 함수의 정의

프로그램 코드

함수의 선언만 있고 정의 부분은 삭제한 위와 같은 코드가 있습니다.

이 코드를 컴파일 하면 오류가 발생하지 않는데, 그 이유는 컴파일러는 함수의 정의를 의심하지 않기 때문입니다.

컴파일러는 함수가 어떤 매개 변수와 반환형을 가지는지 파악하여 문법이 올바른지 판단하고, 함수의 정의는 어딘가에 있다고 생각하고 넘어갑니다.

 

하지만 이 프로그램은 컴파일은 가능하지만 실행할 수는 없습니다.

그 이유는 소스코드 파일을 실행 가능한 소프트웨어로 만드는 빌드 과정에서 함수를 호출했을 경우 이동할 함수의 정의 부분을 찾을 수 없기 때문입니다.

그래서 함수의 정의 부분을 넣어줘야 하는데 어디든 존재하기만 하면 됩니다.

그것이 DLL 파일이든, LIB 파일이든 상관없이 어디든 그 함수의 정의가 존재한다면 그 곳으로 이동할 수 있습니다.

 


<참고 자료>

https://m.blog.naver.com/PostView.naver?blogId=wkdghcjf1234&logNo=220315543835&referrerCode=0&searchKeyword=%ED%8C%8C%EC%9D%BC%20%EB%B6%84%ED%95%A0

 

파일 분할

 프로그래밍을 처음 접한 사람은 대부분 학원, 책 등 배울 수 있는 매체에서 파일 분할의 중요성을 배...

blog.naver.com

 

'프로그래밍 언어 개념 > C' 카테고리의 다른 글

구조체 패딩(struct padding)  (1) 2023.12.08
[C언어] Strcpy 함수 주의할 점  (0) 2022.10.04
[C언어] static 변수  (0) 2021.12.26
[C언어] 지역변수와 전역변수  (0) 2021.12.23