팔만코딩경
/
Library DB
/
C언어 기초문법(?)
/
C언어 7강. 함수 function
/
LIST
Search
Share
LIST
Gallery view
Search
•
함수란 ?
◦
'특정한 작업'을 수행하도록 제작된 독립적인
코드
코드 덩어리 + 이름 = 함수
•
함수를 사용하는 이유?
◦
편하다
◦
코드의 재사용이 가능하다
◦
전체 구조를 파악하기 쉽다
•
함수의 종류
◦
제공 함수 (표준 함수)
printf(), scanf(), getchar() 같은 함수를 말한다.
◦
제작 함수
자신이 사용하고자 하는 함수를 만들어서 사용하는 것을 말한다.
•
함수의 사용 설명서?
www.msdn.com
또는
msdn.microsoft.com/ko-kr/
에서 검색
•
printf() 의 사용법 검색
https://docs.microsoft.com/ko-kr/cpp/c-runtime-library/reference/printf-printf-l-wprintf-wprintf-l?view=msvc-160
•
함수의 기본 형태
리턴형 함수명
(
데이터형 변수
(
매개변수
)
,
데이터형 변수
(
매개변수
)
)
{
함수 본문
:
'특정한 작업을 수행하도록 설계된 코드'
return
리턴 데이터
;
// 리턴형에 따라 생략 가능(ex:void)
}
C
복사
•
함수명
◦
의미있는 단어와 약자로 표현
◦
처리가 시작되는
메모리 주소
를 의미
함수 기초
•
헤더 파일의 역할
◦
함수 원형에 대한 정보를 제공
◦
라이브러리에 관련된 정보 제공
•
제공 함수 사용 방법?
◦
헤더 파일 포함
#include <xxx.h>, #include "xxx.h"
<> : 제공되고 있는 헤더파일은 <> 로 사용한다.
큰따옴표" " : 임의로 만든 헤더파일은 " " 로 명시해서 사용한다.
◦
MSDN을 참조할 것
: 사용할 함수의 헤더 파일 찾기
•
변환 관련 함수
알파벳 대문자를 소문자로 변환
#
include
<stdio.h>
#
include
<ctype.h>
int
main
(
void
)
{
int
mun
=
'A'
;
mun
=
tolower
(
mun
)
;
printf
(
"%c\n"
,
mun
)
;
return
0
;
}
C
복사
•
입출력 함수
◦
getch( ) : 키보드로부터 한 문자를 입력 받지만 화면에 출력하지 않음
◦
putch( ) : 한 문자 출력
◦
gets( ) : 키보드로부터 문자열을 입력 받음
◦
puts( ) : 화면에 문자열 출력
◦
scanf( ) : 입력 형식에 따라 화면으로부터 값을 입력 받음
◦
kdhit( ) : 키의 상태 체크(눌림, 놓임)
•
수학 관련 함수
◦
abs( ) : 절대값
◦
sin( ), cos( ), tan( ) : 싸인, 코싸인, 탄젠트
◦
sqrt( ) : 양의 제곱근 계산
◦
pow( ) : 제곱계산
◦
rand( ) : 난수 생성
•
메모리 관련 함수
◦
malloc( ) : 메모리 할당
◦
free( ) : 할당된 메모리 해제
◦
memcpy( ) : 메모리 복사
◦
memset( ) : 메모리 초기화
•
문자열 관련 함수
◦
strcmp( ) : 문자열 비교
◦
strlen ( ) : 문자열 길이 계산
◦
strcpy ( ) : 문자열 복사
◦
strcat( ) : 문자열 연결
제공 함수
논리적인 부분을 하나의 함수안에 농축할때 제작 함수를 사용한다.
•
언제 제작 함수를 만드는가?
◦
반복적으로 사용되는 코드
◦
프로그램의 구조를 함수 단위로 나눌 때
ex) initXXX( ) : 초기화에 관한 코드
UpdataXXX( ) : 업데이트에 관한 코드
ReleaseXXX( ) : 메모리 해제에 관한 코드
•
main 은 전체 프로그램이 흘러가는 구조를 나열하는 곳이다.
그게 계속 길어지다보면 그 흐름을 읽기 힘들어 질때가 있다. 그 부분을 제작 함수로 나눠서 작업을 할 수 있다.
•
제작 함수의 선언
◦
main( ) 함수 위에 선언하는 경우
◦
main( ) 함수 아래에 선언하는 경우 (대부분 이경우를 추천한다 메인함수가 너무 밑으로 밀리기 때문이다.)
: 함수의 원형을 상단에 명시 (int XXX(매개변수1, 매개변수2);) 꼭 ;(세미콜론)을 사용해야함
#
include
<stdio.h>
int
sumof
(
int
a
,
int
b
)
;
int
main
(
void
)
{
int
a
=
5
;
int
b
=
11
;
printf
(
"%d\n"
,
sumof
(
a
,
b
)
)
;
return
0
}
int
sumof
(
int
a
,
int
b
)
{
int
c
=
(
a
+
b
)
;
return
c
;
}
C
복사
제작 함수
•
개념
함수 안에서 함수 자신을 호출하는 함수
•
재귀 함수를 사용할 때 주의 사항
재귀함수 안에는
종료 조건
이
반드시
있어야 한다.
•
예제 코드
int
Factorial
(
int
var
)
{
if
(
var
==
0
)
{
return
1
;
}
else
{
return
Factorial
(
var
-
1
)
*
var
;
}
}
int
main
(
void
)
{
int
var
=
4
;
printf
(
"팩토리얼 %d! = %d\n"
,
var
,
Factorial
(
4
)
)
;
return
0
;
}
C
복사
◦
순서
return 24;
결과 값 = Factorial(4) = 24
Factorial(3) * 4 = 24
Factorial(2) * 3 = 6
Factorial(1) * 2 = 2
Factorial(0) = return 1;
재귀 함수
•
함수의 개념 이해와 구조
함수는 하나의 코드 덩어리이다.
이름을 지어주고 이름을 통해서 호출을 해서 논리적인 계산된 결과를 얻을 수 있다.
•
함수의 선언 위치에 따른 함수 정의
•
C언어의 대부분음 함수를 사용한 프로그래밍
•
함수에 대한 사항은 MSDN을 적극 활용
정리