• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

거의 모든 함수를 static 선언하시는 이유는 무엇인가요?

20.09.27 17:30 작성 조회수 1.52k

1

안녕하세요? 수강 중인 학생입니다. 다름이 아니라, 몇 가지 질문이 있어서 질문을 드립니다.

1.  거의 모든 함수를 static으로 쓰시는 이유는 무엇인가요?

2. static inline void func (void..) 과 같이 static inline 함수를 사용해도 되나요?

답변 1

답변을 작성해보세요.

1

안녕하세요. 질문자님

사실, 강의 내의 소스코드는 소스코드 한 파일에 실행파일 하나가 나오는 구조 입니다. 따라서 static 함수나 변수를 사용할 필요는 없습니다. 다만, 여러 소스 파일이 하나의 실행 파일을 만드는 경우에는 함수나 변수에 대해 static으로 선언할 필요가 있는 경우가 있죠. 그래서 제가 강의 내에서 static으로 선언하는 함수/변수는 꼭 그렇게 할 필요는 없으나 코딩 습관에 의한 것 입니다. 

당연히 static inline 함수를 사용하셔도 됩니다. 다만 static inline 함수가 일반 함수와 어떻게 다른지 반드시 알고 사용하시기 바랍니다. static inline 함수는 함수가 symbol로 만들어지지 않고 함수를 호출한 자리에 해당 함수의 코드가 그대로 삽입되는 구조 입니다. 따라서 static inline으로 선언한 함수의 크기가 크다면, 비효율적인 구조가 될 수 있습니다. 

답변이 되셨을까요? 또 다른 질문 있으시면 질문 올려주세요~ 그럼 열공하세요~~