가공데이터 · 한국어 지식관계

Static (키워드) document_id A220623120086

분류
국제
라벨 상태 (label_status)
approved
문맥 (context)
[[C (프로그래밍 언어)|C 프로그래밍 언어]]와 [[C++]], [[오브젝티브-C]]에서 '''static'''은 [[정적 변수]]로서의 수명과 연계에 따라 달라지는 가시성을 모두 제어하는 [[예약어]]이다. C에서 static은 예약어인 extern, auto, register와 함께 기억 영역 분류에 해당한다. 모든 변수와 기능은 이러한 기억 영역 분류 가운데 하나를 가지고 있다. 선언에서 기억 영역 분류를 지정하지 않으면 상황에 따라 문맥 의존 디폴트가 사용된다. 이러한 언어에서 "정적 변수"라는 용어는 혼동하기 쉬운 두 가지 의미를 가지고 있다. 명시적인 저장 클래스 없이 최상위 레벨에서 선언된 변수를 포함하는 저장 클래스 extern가 있는 변수는 첫 번째 의미에서는 static이지만 두 번째 의미에서는 그렇지 않다. 일반적으로 C언어에서는 전역변수와 지역변수에 static으로 선언하여 사용할 수가 있다 static으로 선언된 변수는 프로그램 실행동안 값을 유지한다는 점에서 전역변수와 동일하지만 사용범위가 제한 된다는 점에서 전역변수와 다르다. 전역변수를 static으로 선언하면 사용범위가 선언된 소스(파일)내로 한정되어 다른 소스(파일)에서는 접근이 불가능하다. 지역변수를 static으로 선언하면 지역변수의 특성 상 선언된 해당 함수내에서만 사용이 가능하지만 프로그램 실행동안 값을 유지하는 점에서 전역변수의 특성을 갖고 있다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
C언어에서 static으로 선언된 변수가 전역변수와 지역변수 중 어느 범주에 속할 때 각각 어떤 특성을 갖는지 분류하여 설명하시오.
추론 과정 (compact_reasoning)
  1. 1과제 해석task_interpretation

    static으로 선언된 변수가 전역변수와 지역변수로 분류될 때의 각각의 특성을 파악해야 한다.

  2. 2정보 추출information_extraction

    전역변수를 static으로 선언했을 때의 특성과 지역변수를 static으로 선언했을 때의 특성을 추출한다.

    • 전역변수를 static으로 선언하면 사용범위가 선언된 소스(파일)내로 한정되어 다른 소스(파일)에서는 접근이 불가능하다.
    • 지역변수를 static으로 선언하면 지역변수의 특성 상 선언된 해당 함수내에서만 사용이 가능하지만 프로그램 실행동안 값을 유지하는 점에서 전역변수의 특성을 갖고 있다.
  3. 3근거 선택evidence_selection

    전역변수 static의 범위 제한 특성과 지역변수 static의 값 유지 특성을 핵심 근거로 선택한다.

    • 사용범위가 선언된 소스(파일)내로 한정
    • 프로그램 실행동안 값을 유지
  4. 4논리 통합logical_integration

    두 분류의 공통점(값 유지)과 차이점(사용 범위)을 대조하여 정리한다.

  5. 5결론 도출conclusion_formulation

    전역변수 static은 파일 내로 범위가 한정되고, 지역변수 static은 함수 내로 범위가 한정되나 값은 유지된다는 결론을 도출한다.

  6. 6답변 생성answer_generation

    질문에 따라 전역변수와 지역변수의 static 선언 시 특성을 구분하여 작성한다.

    • 전역변수를 static으로 선언하면 사용범위가 선언된 소스(파일)내로 한정되어 다른 소스(파일)에서는 접근이 불가능하다.
    • 지역변수를 static으로 선언하면 지역변수의 특성 상 선언된 해당 함수내에서만 사용이 가능하지만 프로그램 실행동안 값을 유지하는 점에서 전역변수의 특성을 갖고 있다.
최종 답변 (final_answer)
C언어에서 static으로 선언된 변수는 다음과 같이 분류된다. 첫째, 전역변수를 static으로 선언하면 프로그램 실행 동안 값을 유지한다는 점에서는 전역변수와 동일하지만, 사용 범위가 선언된 소스(파일) 내로 한정되어 다른 소스에서는 접근할 수 없다. 둘째, 지역변수를 static으로 선언하면 선언된 해당 함수 내에서만 사용이 가능하다는 지역변수의 특성을 가지면서도, 프로그램 실행 동안 값을 유지한다는 점에서 전역변수의 특성을 갖는다.
핵심 해석 (core_interpretation)
C언어에서 static 예약어로 선언된 변수는 전역변수일 때 사용 범위가 한정되며, 지역변수일 때 프로그램 실행 동안 값을 유지하는 특성을 갖는다.