Language/C C언어 강좌 (수학함수/난수생성함수 rand/함수 포인터)
  • 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
    반응형
상단으로