Language/C
C언어 강좌 (수학함수/난수생성함수 rand/함수 포인터)
Dexter_-
2016. 9. 8. 09:28
728x90
반응형
C언어 Chapter 17.
수학 함수
- 수학함수를 이용하기 위해서 <math.h> 파일을 이용한다.
- gcc 컴파일의 경우 gcc -o main main.c -lm 으로 컴파일 해야한다.
cl 컴파일은 자동으로 <math.h> 파일을 찾아 준다.
- gcc 컴파일의 라이브러리 함수 위치
/user/lib/ 위치의 libc.a
- windows 컴파일의 라이브러리 함수 위치
C:\Program Files\Microsoft Visual Studio\VC98\Lib 위치의 LIBCP.LIB
수학 관련 함수
Ex) 수학함수 사용법
결과
난수 생성 함수 rand()
rand()
함수는<stdlib.h>
파일에 명시되어 있다.- 0 ~ 32767 사이의 정수를 반환 한다.
보통 인수 값으로
time(NULL)
함수를 이용한다.
time()
함수는 1970년 1월 1일로부터 지금까지 경과된 시간을 초로 계산하여 반환한다.
Ex) 난수를 발생하는 프로그램
프로그램 설명
- 위의
for
문은 고정 Random - 아래의
for
문은time(NULL)
시간의 변화에따른 Random
결과 : 윗줄 값은 고정이고 아랫줄 값은 실행할때마다 변한다.
함수 포인터
- 함수 포인터 변수의 선언 형식
반환자료형 (* 함수포인터 변수이름) (인수1, 인수2, ..., 인수n)
Ex) 함수포인터 사용법
프로그램 설명
- 함수 포인터 handle 의 선언
int (*handler) (int, int);
- 함수 포인터 handle이
plus()
함수를 가리키게 된다.
if (op == '+') handler = plus;
- 함수 포인터 handle을 이용하여 함수를 호출한다.
printf("the result is %d.\n", (*handler) (num1, num2));
결과
Ex) point 함수 받는법
4G memory 의 5분할
Code (함수 기계어) |
Data (전역 변수) 초기화 O |
BSS (전역변수) 초기화 X |
Heap (동적할당) |
Stack (지역변수) |
Roder : HDD 에서 5분활된 프로그램을 Memory 로 5개 영역으로 복사하여 가져오면 CPU가 단계별로 해석하여 수행한다.
Ex) stack 으로 메모리의 값이 낮아지고 호출함수는 주소값을 쓰고소멸후 다음 호출함수가 그 주소값을 재활용하여 쓴다.
결과
728x90
반응형