hcmlr21   6년 전

4673 만의 문제는 아니지만 이 문제를 풀다가 static에 궁금한 부분이 생겨서 질문을 드립니다.

8번째 줄의 static 으로 선언 되어있는 변수를 전역변수로 선언하면 정답이 되지만 이 글에 게시된 코드로 제출하면 컴파일 에러가 나옵니다. 

혹시 이유를 알 수 있을까요? 

upple1   6년 전

스테틱 변수는 선언한 블록 내에서만 사용 가능한 변수 입니다. lifetime은 프로그램 작동시간이지만 scope는 블록 안이죠. 즉 메인에서 check를 사용하려하면 적어도 전역으로 static을 선언해야 하는거죠. 하지만 여기서는 파일을 두 개 이상 쓰는 일이 없기 때문에 전역 스테틱변수는 의미가 없습니다. 전역변수랑 같은 기능을 합니다. 

upple1   6년 전

전역 스테틱 변수는 일반 전역 변수와는 달리 다른 파일에서 extern선언해도 사용할 수 없습니다. 

hcmlr21   6년 전

감사합니다!!

djm03178   6년 전

변수의 lifetime과 scope의 개념과 차이에 대해서 공부해보시면 좋을 것 같습니다.

hcmlr21   6년 전

감사합니다

댓글을 작성하려면 로그인해야 합니다.