C언어

C언어 함수들의 정의

5_jinseok12 2018. 1. 15. 15:47
728x90

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