C언어 함수에 대해 알아보자
아래에 다른 함수들을 지정한다 하더라도 main함수는 제일 위에 있어야 한다.
이렇게 위에 main을 설정한 후 add함수를 설정하면 된다.
결과는 실행하지만 밑에 보면 add가 정의되지 않았습니다 라고 뜨는것을 확인할 수 있다.
이렇게 add함수가 있다는 것을 void main에 알려줘야 한다.
그러기 위해선 void 위에다가 설정을 한다.
이렇게 설정하는 것을 함수의 원형이라고 한다.
라이브러리 함수
컴파일러에서 제공하는 함수를 라이브러리 함수라고 한다
ex) printf , scanf 등등..
랜덤함수(난수함수)
난수를 생성하는 함수이다
주로 암호학, 게임, 시뮬레이션 등에서 필수적으로 사용한다.
게임 같은 경우 몬스터들이 랜덤으로 등장되어야 하기 때문에 rand를 사용한다
난수는 0~32767 의 수가 랜덤하게 나온다.
rand() 함수라고는 하지만 고정값인 41이 나온다. 왜그럴까
랜덤으로 나오긴 하지만 사실 난수표라는게 존재해서 어떠한 순서가 존재한다.
그걸 해결하기 위해 시드(seed)를 설정해야 한다.
난수표이다. 참고만 하자.
srand((unsigned)time(NULL)) ; 현재시각을 기준으로 난수표의 위치를 실행한다
실행할 때 마다 시간이 다르기 때문에 랜덤하게 나온다.
위에 사진에 에러가 뜬 이유는 #include<time.h>를 지정해주지 않았기 때문이다
오잉? num의 숫자가 32317이라는 이상한 숫자가 나왔다.
왜냐하면 num에 대한 범위를 지정해주지 않았기 때문이다.
num(rand()%45)+1; : 0부터 45까지의 범위지만 내가 설정한 범위는 1부터 45이기 때문에 뒤에 +1
C언어에는 전역 변수와 지역 변수가 있다.
우선 지역변수는
우리가 항상 사용하는 변수들이다.
함수를 호출 시 생성되어 수행 종료시 소멸된다.
또 선언된 블럭이 끝나면 자동으로 소멸된다.
전역변수는
함수 외부에서 선언되는 변수이며 범위는 소스파일 전체이다.
또 자동으로 초기화된다.
지역변수는 사용하고 종료되지만 전역변수는 프로그램 자체가 종료되어야 한다.
전역변수같은 경우 소스코드가 복잡해지기 때문에 잘 사용하지 않는다.
변하지 않는 변수만 전역변수로 지정한다.
'C언어' 카테고리의 다른 글
C언어 포인터변수 (0) | 2018.01.24 |
---|---|
C언어 while문(break,continue) (0) | 2018.01.14 |
C언어 while문과 for문 (0) | 2018.01.10 |
C언어 switch문 (0) | 2018.01.09 |
C언어 if 문 (0) | 2018.01.08 |