C static 함수에 대해 질문드립니다


c++ static 메소드 말고 static 함수에 대해서 질문드립니다.

static 변수는 알고 있는데 static 함수는 뭔가요? 그리고 다른 c파일에 void myfunc()를 정의하고 이 c파일을 include하면 컴파일이 안되는데 왜 static void myfunc()하면 정상적으로 컴파일되는 거죠?

  • 2016년 01월 29일에 작성됨

조회수 284


1 답변


좋아요
0
싫어요
채택취소하기

static함수는 같은 파일 내에 있는 파일한테만 보이는 함수입니다. (정확히는 같은 파일이 아니라 같은 translation)

질문하신 경우는

//다른C파일.c
void myfunc(){
    //어떤코드
}

//main파일.c
#include "다른C파일"

...

와 같이 써서 링크 에러가 발생하는 것 같은데

//다른C파일.c
void myfunc();

//main파일.c
#include "다른C파일"

myfunc()
{
    //어떤코드
}

로 바꾸면 정상적으로 컴파일될 겁니다

  • 2016년 01월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close