• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

8분 29초 함수의 인자로 static을 쓰면 안된다고 하신부분의 질문입니다.

21.01.21 22:45 작성 조회수 339

0

함수의 인자로 static이 오면 안된다는건 

함수가 실행될때 새로운 스택 프레임이라는 공간을 배정받는데. 파라미터도 이때 동일한 스택 프레임 안에 메모리를 배정받기때문이다 라고 말씀해주셨는데요. 

즉 스택에쌓여야할 것을 데이터 또는 BSS에 담으려고 하니 문제가 생긴다는 것일까요?

답변 1

답변을 작성해보세요.

2

안소님의 프로필

안소

2021.01.22

안녕하세요.

static 정적 변수는 프로그램 내내 메모리가 유지가 되며, 오직 정해진 scope 내에서만 사용할 수 있습니다. 

함수의 매개 변수가 static이라면 함수를 호출할 때마다 새롭게 static 변수들을 계속 선언하고 정의한다는 것인데, 그럼 static 의 특성과 모순이 되기 때문입니다.

static 변수는 프로그램 내내 메모리가 유지되면서 한번 생성되면 그 변수를 scope 내에서 프로그램 실행 내내 재사용할 수 있는데 여러번 static 변수들을 새롭게  또 만들고 만들고 할거면 굳이 매개변수를 static으로 선언해줄 이유가 없겠지요?