도슐랭스타

C언어-함수 본문

C언어

C언어-함수

도도.__. 2023. 9. 23. 16:11

함수

  • 특정한 작업을 하도록 만들어진 독립적인 단위 모듈.

표준 라이브러리 함수

  • 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