c - 함수, extern static 함수

markyang92·2025년 12월 27일

c

목록 보기
3/4
post-thumbnail

C의 함수

  • 모두 전역(global)
  • 기본적으로 어디에서나 호출 가능
  • 함수 오버로딩 없다.
  • 컴파일 때, 함수 선언만 가지고도 컴파일 된다.
    • 우선 컴파일 시, 함수 부분은 구멍으로 둔다.
    • 링크 단계에서 구멍을 메꾼다.
      • 함수 주소를 기입 해준다.
  • 링킹 단계에서 에러가 난 경우,
    • 함수 선언만 있고, (함수 선언이 없으면 아예 컴파일에서 에러니까), 함수 구현이 없는 것

선언

  • 함수 선언이 없으면 에러가 발생한다.
    • ANSI C(C89)에서는 함수 정의가 등장하기 전에 함수를 호출하면 컴파일러가 다음가 같이 가정
      • 반환형: int
      • 그 매개변수는 아무거나 올 수 있음
      • 따라서, 나중에 컴파일러가 int가 아닌 다른 것을 반환하는 함수를 찾으면 컴파일 오류

extern 함수

  • 기본적으로 C에서 함수는 전역
  • 함수에 extern 붙일수 있으나 의미 없음

static 함수

  • static함수는 static 변수와 마찬가지로, 내 파일에서만 함수를 사용할 것
    • 다른 파일에서 링크 못한다.
profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글