본문 바로가기
개념/혼자 공부하는 C언어

chapter 13) 레지스터 변수를 반복문에 사용한 예

by kiseno 2024. 8. 29.
728x90
반응형
SMALL
#include <stdio.h>

int main(void){
    register int a;
    auto int sum = 0;

    for (int i = 1; i<= 10000; i++){
        sum += i;
    }

    printf("%d\n", sum);
    return 0;
}

 

- **변수 선언**:
  - `register int a;`는 `a` 변수를 레지스터 변수로 선언합니다. 레지스터 변수는 CPU의 레지스터에 저장되어 빠른 액세스를 가능하게 하는 변수입니다. 그러나 현대의 컴파일러는 최적화를 통해 자동으로 변수를 레지스터에 할당하므로, `register` 지정자의 실제 효과는 컴파일러에 의존적입니다. 이 코드에서 `a` 변수는 사용되지 않습니다.
  - `auto int sum = 0;`는 자동 저장 기간을 가지는 정수 변수 `sum`을 선언하고 0으로 초기화합니다. `auto` 키워드는 기본적으로 모든 지역 변수에 적용되며, 별도로 명시하지 않아도 됩니다. `sum` 변수는 1부터 10000까지의 정수 합을 저장하는 데 사용됩니다.

- **`for` 루프**:
  - `for` 루프는 `i`를 1부터 시작하여 10000까지 1씩 증가시키며 반복합니다.
  - 각 반복에서 `i`의 값을 `sum`에 더하여, 최종적으로 `sum`에는 1부터 10000까지의 정수 합이 저장됩니다.

- **결과 출력**:
  - `printf` 함수를 사용하여 `sum`의 값을 출력합니다. 이 값은 1부터 10000까지의 정수 합계입니다.

- **프로그램 종료**:
  - `return 0;`을 사용하여 프로그램이 성공적으로 실행되었음을 나타내며, 프로그램을 종료합니다.

728x90
반응형
LIST