C 함수

(2019-01-26)

C 언어 함수, 함수, 동적 메모리 관리 함수, malloc(), calloc(), free(), 동적 메모리 할당

1. C 언어함수 및 특징함수
     - 특정 작업을 수행하도록 설계된 독립적인 프로그램(부프로그램)

  ㅇ 특징
     - 모두 동등/대등한 자격을 갖음 (상하 관계가 없음)
     - 서로 독립적임 (종속적이지 않음)

     - C 프로그램의 실행은, 함수함수가 연결된 형태로 이루어짐 (실행)
     - 사용하기 전에 항상 함수의 원형을 밝혀야 함 (Prototype)


2. C 언어함수의 종류

  ㅇ 표준 함수 : C 언어 자체에서 제공 
     - 표준 라이브러리 형태로 제공 
        . 표준 함수의 형식인 원형(Prototype)은, 헤더 파일에 정의되어 있으며,
        . 그 실체는, 라이브러리 파일에 수록되어 있음
        . 실제 내용은, 링킹라이브러리 파일에서 읽혀져 작성된 프로그램에 결합됨

  ㅇ 사용자 정의 함수
     - 개발자가 직접 함수 선언 및 정의를 함


3. C 언어함수의 사용함수의 사용
     - 함수 선언 : 함수의 원형(Prototype) 
     - 함수 정의
     - 함수 호출함수 선언/함수 정의의 구조
     - 함수 헤더 : 반환자료형 함수명 (자료형 매개변수, ... )
     - 함수 시작 : {
     - 함수 몸체
     - 함수 끝   : }


4. 주요 함수

  ㅇ main()
     - 프로그램 수행시 가장 먼저 호출되는 함수로써, 모든 C 언어 프로그램에 꼭 존재

  ㅇ 입출력 (stdio.h)
     - 문자열 입출력 (stdio.h)        ☞ C 문자열 함수 참조
        . 단일 문자 입출력 (stdio.h)
           .. getchar(), putchar()
        . 문자열 입출력 (stdio.h)
           .. gets(), puts(), fputs(), scanf(), printf()
     - 파일 입출력 (stdio.h)
        . fopen(), fclose(), getc(), putc(), exit(), fprintf(), fscanf(),
          fgets(), fputs(), rewind(), fseek(), ftell(), fflush(), fgetpos(),
          fsetpos(), feof(), ferror(), ungetc(), setvbuf(), fread(), fwrite()

  ㅇ 단일 문자 검사 (ctype.h)
     - isalnum() (문자,숫자 여부), isalpha() (문자 여부), iscntrl() (제어문자 여부),
       isdigit() (숫자 여부), isgraph() (그래프문자 여부), islower() (소문자 여부),
       isupper() (대문자 여부), isspace() (공백문자 여부), isxdigit() (16진수 숫자 여부)


5. 동적 메모리 관리(할당,해제) 함수 (stdlib.h)컴파일시에 메모리 공간을 확정하지 않고, 프로그램 실행시 동적으로 처리
     
     - malloc()  : 실행중에 동적으로 1개 값 형식으로 메모리 공간(힙 메모리)을 할당 
        . 특징
           .. 할당할 메모리 크기를, 바이트 단위로 전달받고,
           .. 한 번 할당된 공간 크기 값들을 안 바꿈
           .. 할당 만 가능, 초기화는 할 수 없음
           .. (void *)을 반환하므로, 반드시 캐스트 연산자를 써야 함
        . 例)
           .. (int *) malloc (100*sizeof(int)); // 100개 정수 크기의 바이트
           .. (float *) malloc (sizeof(float)); // 1개 실수 크기의 바이트
        . 반환 : 할당된 메모리 공간의 첫 바이트의 포인터를 반환 (void *)
           .. 만일, 메모리 부족 등으로 할당 실패시, NULL을 반환

     - calloc()  : malloc과 유사하나, 두 값 형식으로 메모리 공간을 할당
        . (개수,사이즈) 형식으로 전달받으며, 할당된 공간의 값을 모두 0으로 초기화
        . 따라서, 배열을 할당하고 모두 0으로 초기화 할 때는 calloc를 쓰면 편함

     - free()    : 이전 할당된 메모리 공간의 해제

     - realloc() : 이전 할당된 메모리 공간 크기 조정


[C 함수] 1. C 함수 2. C 문자열 함수

 
        최근수정     요약목록     참고문헌