반응형

정적 지역 변수가 사용되는 하나의 용도는 함수가 처음 호출될 때 초기화를 딱 한번만 수행하는 것이다.

inited는 정적 변수이기 때문에 다음번의 호출에서도 그 값을 유지한다. 따라서 초기화 코드는 함수가 처음 호출될 때 한번만 실행된다. 이러한 구조를 사용하여 맨 처음 호출되는 경우에만 초기화를 수행하는 난수 발생 함수 get_random()을 작성하여 테스트하라.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void get_random(void);
int main(void)
{
    get_random();
    get_random();
    get_random();
return 0;
}
void get_random(void)
{
    static int inited = 0;//한번만 초기화 됨
    if(inited==0)
    {
    inited=1;
    srand((unsigned)time(NULL));
    }
    printf("%d\n", rand());
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

입출금 프로그램  (0) 2016.08.04
조화 수열(harmonic series)  (0) 2016.08.04
주사위 던지기  (0) 2016.08.03
연산 횟수를 세는 계산기  (0) 2016.08.03
메뉴 시스템 만들기  (0) 2016.07.29

+ Recent posts