C 정적 범위 변수 정의되지 않음

리듬 잉크

내 목표는 retrieve()카운터의 현재 값을 반환 하는 함수를 추가하는 것입니다 (기존 코드를 수정하지 않고) .

#include <stdio.h>

void increment(void){
    static unsigned int counter = 0;

    counter++;

    printf("%d\n", counter);

}

int main(void){

    for (int i = 0; i < 5; i++){
        increment();
    }
    
    printf("counter = %d\n", retrieve()); 

    return 0;
}

그러나 내가 시도하는 모든 것이 범위 문제에 직면하고 있습니다. 즉, counter아직 인스턴스화되지 않았으므로 컴파일러는 정의되지 않은 이름으로 간주합니다. 기능을 추가해 보았습니다

int retrieve(void){

    return counter;
}

사이 incrementmain도 모두 내 incrementmain자신. static키워드 에 대한 나의 이해는 변수가 인스턴스화되면 프로그램 실행 기간 동안 정의 된 블록을 넘어서 지속된다는 것입니다. 그래서 제가 겪고있는 문제는 변수가 아직 인스턴스화되지 않았다는 것입니다. 어떤 도움이라도 좋을 것입니다.

키스 톰슨

범위와 수명은 서로 다른 두 가지이며 부분적으로 독립적입니다.

범위는 식별자가 표시되는 프로그램 텍스트 영역입니다.

수명 (또는 저장 기간)은 객체가 존재하는 프로그램 실행 동안의 기간입니다.

명명 된 개체 counter가 함께 정의되어 있기 때문에, static보유 정적 저장 기간 이 프로그램의 전체 실행 중에 있는지 수단. 그러나 식별자 counter에는 블록 범위 가 있습니다. 즉, 이름이 선언 }된 가장 안쪽 블록을 종료하는 선언에서만 볼 수 있습니다 . (이 경우 해당 블록은 함수 정의의 가장 바깥 쪽 블록이됩니다.)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

변수 정의되지 않은 범위

분류에서Dev

.lib의 C ++ 정적 변수가 초기화되지 않음

분류에서Dev

C # .net의 변수 범위 지정

분류에서Dev

Python 3 : 범위에서 재정의 할 때 변수가 해결되지 않음

분류에서Dev

Angular.js 범위 변수 정의되지 않음, ng-repeat 초기 상태

분류에서Dev

자바 스크립트 변수 범위 반환 정의되지 않음

분류에서Dev

AngularJS 앱의 정의되지 않은 범위 변수

분류에서Dev

컨트롤러에서 정의되지 않은 범위 변수

분류에서Dev

C ++ / CX Metro Windows-create_task 구현으로 해당 범위에 정의되지 않은 변수 사용 방지

분류에서Dev

변수가 정의되지 않았습니다. 이상한 변수 범위

분류에서Dev

지시문 링크 함수에 정의되지 않은 범위 변수

분류에서Dev

외부 범위에 정의 된 변수가 내부 범위에 정의되지 않았습니다.

분류에서Dev

C ++의 정적 메서드에 대한 로컬 변수 범위

분류에서Dev

변수를 정의하는 C ++ 범위?

분류에서Dev

함수간에 정의되지 않은 JavaScript 전역 동적 변수가 로컬 범위 인 것 같습니다.

분류에서Dev

C #의 변수 범위 : 예상대로 작동하지 않음

분류에서Dev

전역 변수는 함수 범위 내에서 정의되지 않습니다.

분류에서Dev

Coldfusion 및 범위가 지정되지 않은 변수

분류에서Dev

Backbonejs 범위 문제, 어떻게 든 정의되지 않은 변수

분류에서Dev

카르마 테스트에서 정의되지 않은 예상 범위 변수

분류에서Dev

`.then` 메서드 외부에서 정의되지 않은 범위 변수

분류에서Dev

Meteor 호출 범위 변수가 설정되지 않습니다.

분류에서Dev

SASS에서 정의되지 않은 변수 (위에 변수가 정의되어 있음)

분류에서Dev

환경 변수-정의되지 않음

분류에서Dev

Python 2.7 : 변수 "정의되지 않음"

분류에서Dev

PSQL nodejs 변수 정의되지 않음

분류에서Dev

범위, C ++와 관련된 지역 변수 정의

분류에서Dev

C / C ++ 선언 및 정의 된 변수가 표시되지 않음

분류에서Dev

flutter의 범위에서 변수가 변경되지 않음

Related 관련 기사

  1. 1

    변수 정의되지 않은 범위

  2. 2

    .lib의 C ++ 정적 변수가 초기화되지 않음

  3. 3

    C # .net의 변수 범위 지정

  4. 4

    Python 3 : 범위에서 재정의 할 때 변수가 해결되지 않음

  5. 5

    Angular.js 범위 변수 정의되지 않음, ng-repeat 초기 상태

  6. 6

    자바 스크립트 변수 범위 반환 정의되지 않음

  7. 7

    AngularJS 앱의 정의되지 않은 범위 변수

  8. 8

    컨트롤러에서 정의되지 않은 범위 변수

  9. 9

    C ++ / CX Metro Windows-create_task 구현으로 해당 범위에 정의되지 않은 변수 사용 방지

  10. 10

    변수가 정의되지 않았습니다. 이상한 변수 범위

  11. 11

    지시문 링크 함수에 정의되지 않은 범위 변수

  12. 12

    외부 범위에 정의 된 변수가 내부 범위에 정의되지 않았습니다.

  13. 13

    C ++의 정적 메서드에 대한 로컬 변수 범위

  14. 14

    변수를 정의하는 C ++ 범위?

  15. 15

    함수간에 정의되지 않은 JavaScript 전역 동적 변수가 로컬 범위 인 것 같습니다.

  16. 16

    C #의 변수 범위 : 예상대로 작동하지 않음

  17. 17

    전역 변수는 함수 범위 내에서 정의되지 않습니다.

  18. 18

    Coldfusion 및 범위가 지정되지 않은 변수

  19. 19

    Backbonejs 범위 문제, 어떻게 든 정의되지 않은 변수

  20. 20

    카르마 테스트에서 정의되지 않은 예상 범위 변수

  21. 21

    `.then` 메서드 외부에서 정의되지 않은 범위 변수

  22. 22

    Meteor 호출 범위 변수가 설정되지 않습니다.

  23. 23

    SASS에서 정의되지 않은 변수 (위에 변수가 정의되어 있음)

  24. 24

    환경 변수-정의되지 않음

  25. 25

    Python 2.7 : 변수 "정의되지 않음"

  26. 26

    PSQL nodejs 변수 정의되지 않음

  27. 27

    범위, C ++와 관련된 지역 변수 정의

  28. 28

    C / C ++ 선언 및 정의 된 변수가 표시되지 않음

  29. 29

    flutter의 범위에서 변수가 변경되지 않음

뜨겁다태그

보관