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

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

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

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

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

    질문하신 경우는

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

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

    //다른C파일.c
    void myfunc();
    
    //main파일.c
    #include "다른C파일"
    
    myfunc()
    {
        //어떤코드
    }
    

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

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.