도슐랭스타
C언어-함수 본문
함수
- 특정한 작업을 하도록 만들어진 독립적인 단위 모듈.
표준 라이브러리 함수
- printf, scanf와 같은 컴파일러에서 지원하는 미리 만들어져 있는 함수.
함수의 선언, 정의, 호출
- 함수 선언 : 컴파일러에게 함수에 대한 정보를 미리 알려주는 것.
- 함수 정의 : 함수를 만드는 것.
- 함수 호출 : 함수를 사용하는 것.
#include <stdio.h>
void hello(); //함수 선언
int main(void) {
hello(); //함수 호출
return 0;
}
void hello() { //함수 정의
printf("안녕");
}
재귀(recursive) 함수
- 함수 내에서 자기 자신을 호출하는 것.
- 단점 : 반복 호출 시 시간이 오래 걸리고 메모리 공간의 효율성이 떨어진다.
- 스택 오버플로우(stack overflow)에 주의해야 한다.
: 스택의 크기를 초과하는 것.
int sum(int n) {
printf("n = %d", n);
if( n <= 1 ) return(1);
else return(n+sum(n-1)); //안에서 sum을 다시 호출
}
매개변수 전달 방법
- call by value : 우리가 평소에 사용하는 것/ 값만 전달하는 것.
- call by address : 주소를 전달하는 것.
int main () {
int a=2, b=5, c=0;
c=sum(a+b);
return0;
}
int sum (int a, int b){
a=a+2; //이 줄에서 두 개의 a는 서로 다른 a임.
b=b+5; //이 줄에서 두 개의 b는 서로 다른 b임.
return(a+b);
}
구조적 프로그래밍
- 여러 개로 나누어 분할하여 구현함.
- "Divid and Conquer"(나누어 정복)
→ 하나로 다 만들면 수정하기 힘들기 때문.
도슐랭스타
★★☆☆☆ : 조큼 어렵,,
함수는 써본 적이 없어서 그런지 어렵다.. 많이 써봐야겠다. 매개변수의 전달 방법이 헷갈린다.
출처 : https://www.youtube.com/@smilehan8416/playlists
Smile Han
www.youtube.com
반응형
'C언어' 카테고리의 다른 글
C언어-기억 부류 지정자 (2) | 2023.09.26 |
---|---|
C언어-제어문 (0) | 2023.09.16 |
C언어-연산자 (0) | 2023.09.08 |
C언어-전처리기 (0) | 2023.09.03 |
C언어-표준 라이브러리 함수 (0) | 2023.07.25 |
Comments