Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

함수 본문

Class/C, C++

함수

김브래 2022. 12. 31. 16:04

매개변수, 인자, 리턴값


함수

- C 프로그램은 함수(function)의 집합
- 함수란 특정한 작업을 하도록 만들어진 독립적인 단위 모듈
- 큰 프로그램 하나를 여러 개의 함수로 분할하여 구현하는 구조적 프로그래밍(structured programming) 방식의 기본
- 함수에 입력시키는 것을 매개변수(parameter) 또는 전달인자(인수, argument)라 함
- 함수가 돌려주는 결과 값을 반환값 또는 리턴값(return value)이라 함


C프로그램의 기본 틀

- 콘솔 기반 C 프로그램은 main() 함수로 시작
- main()함수는 콘솔 기반 C 프로그램의 시작점(entry point)
- 하나의 프로그램에 반드시 하나 존재
- 리턴값이 없는 함수나 매개변수가 없는 함수는 그 위치에 비어 있다는 뜻의 "void"를 씀
- 매개변수 리스트에 쓰는 "void"는 생략할 수 있지만 리턴형에 쓰는 "void"는 생략 불가

- C99부터는 main()함수는 예외적으로 return 0;이라는 소스를 생략 가능
- 하지만 대부분 생략하지 않음


함수의 입력과 출력

입력 - 매개변수(parameter), 인자
출력 - 반환값(return value), 리턴값 = 함수가 돌려주는 결과 값

- 리턴값이 없으면 리턴형 쓰는 자리에 void
- 매개변수가 없으면 매개변수 쓰는 자리에 void (이 경우는 생략 가능)

 

함수 개요

- C 프로그램은 함수의 집합
- 함수란 특정한 작업을 하도록 만들어진 독립적인 단위 모듈
- 함수에 입력되는 것은 인자(argument)
- 받은 인자는 함수 안에서 매개변수, 파라미터 (parameter)
- 함수에서 출력되는 것을 반환값, 리턴값(return value)

 

C 언어에서 사용하는 함수
- printf() 등의 표준 라이브러리 함수
- 프로그래머가 직접 만든 함수
- main()함수

 

main()함수

- main()함수는 뜻이 의미하듯이 가장 중요한 함수로 한 프로그램에 반드시 하나 존재해야 하며, 프로그램의 어느 위치에 있든지 상관없이 제일 먼저 실행
- main()함수는 콘솔기반 C 프로그램의 시작점(entry point)
- 함수를 직접 만들기 위해서는 함수의 이름, 리턴값, 매개변수, 실행 코드 등을 작성

 

함수를 사용할 경우 장점

- 복잡한 문제를 나누어서 해결하는 구조적 프로그래밍 (structured programming)이 가능
- 프로그램의 각 부분을 독립적인 모듈로 나누어 작성하므로 작성, 수정, 유지 보수, 확장이 용이
- 반복되는 작업을 하나의 루틴으로 만들어 재사용하므로 코딩 양이 감소
- 일반 사용자가 알 필요가 없는 특정한 부분을 숨길 수 있는 정보 은폐 가능

 

표준 라이브러리(standard library) 함수

- C 언어는 기본 문법과 함께 상당히 많은 함수들을 컴파일러에서 지원하는데 이러한 함수들의 집합을 표준 라이브러리 함수라 함
- 마이크로소프트(Microsoft)같은 컴파일러 제작사는 자주 사용되는 공통적인 함수들을 미리 만들어서 컴파일러와 함께 배포
- 런타임 라이브러리(C RunTime : CRT)라고 부름
- 이러한 함수를 표준 라이브러리(standard library) 함수라 하며 printf(), scanf() 등이 대표적

 

ANSI C와 표준 라이브러리 함수

 C 컴파일러를 만드는 회사들이 제각각 사용자가 필요로 하는 함수들을 제공했었는데 1989년에 제정된 ANSI C 표준에서 통일
 C 표준은 C 컴파일러가 제공해야 하는 함수의 목록과 원형, 기능을 규정하고 있으므로 모든 C 컴파일러는 표준대로 라이브러리를 제공해야 함
 C 표준은 필요한 최소한의 함수 목록만을 규정하며 컴파일러 제작사는 필요에 따라 함수를 더 추가로 정의하고 있으므로 컴파일러 제작사에 따라 런타임 라이브러리의 구성이 조금씩 다름

 

표준 라이브러리 함수와 표준 헤더 파일

printf(), scanf() 같은 기본적인 표준 함수들은 모든 컴파일러에서 제공
- 볼랜드사의 Turbo C 컴파일러에는 gotoxy(), clrscr() 등의 함수들이 있지만 Visual C++에는 없으며 같은 함수라도 컴파일러에 따라 이름이 다른 경우도 있음
- 표준 라이브러리 함수는 이미 만들어져 있으므로 바로 사용하면 되지만 사용하기 전에 반드시 선언을 해야 함
- 함수 선언이란 리턴형, 함수 이름, 매개변수 리스트 정보를 갖는 함수의 사용법
- 표준 라이브러리 함수는 직접 선언할 수도 있지만 이 함수가 이미 선언되어 있는 표준 헤더 파일을 #include 전처리기를 이용하여 프로그램에 포함시키는 방법을 더 많이 사용
- 표준 헤더 파일(standard header file)은 표준 라이브러리 함수들을 미리 선언해 놓은 파일
- printf(), scanf()등 표준 입출력 함수들은 stdio.h파일에 선언(원형, prototype)이 들어 있음

 

C 표준 라이브러리 함수

 

math.h와 string.h

 

stdlib.h와 time.h 

 

입출력 함수

 

문자열 함수

 

문자 함수

 

수학 함수

 

날짜, 시간 함수

 

메모리 관련 함수

 

유틸리티 함수

 

사용자 정의 함수

함수 정의

- 이름, 매개변수, 리턴형, 기능


함수 호출

- 함수 사용하기
- 이름, 매개변수


함수 선언

- 함수의 사용법
- 컴파일러에게 함수에 대한 정보를 미리 줌

 

void display(void) 

printf("안녕"); 
}  // 함수 정의


display(); // 함수 호출


void display(void);  // 함수 선언


return문

결과 값을 호출한 함수로 반환
- return문을 만나면 함수의 나머지 부분에 상관없이 함수의 실행을 종료하고 호출한 함수로 넘어감


함수 호출(call)

- 함수를 만드는 것을 함수를 정의(definition) 한다고 함
- 함수를 만든(정의) 후 함수를 사용(호출)
- 함수를 호출할 때는 함수 이름과 괄호 안에 argument를 개수만큼 써야 함
- argument가 없을 때는 빈 괄호만 쓰면 됨

 

'Class > C, C++' 카테고리의 다른 글

제어문  (0) 2022.12.29
C 언어 문법 정리 - 식별자, 리터럴(상수), 자료형, 변수, 전처리기, 연산자  (2) 2022.12.26
C++ 언어 소개  (2) 2022.12.25
C / C++ 자료 출처  (0) 2022.12.25