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

조회수 2632회

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()
    {
        //어떤코드
    }
    

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)