삽질의 현장/- C

[Surro] :: C언어 이론 05. 함수

shovelman 2013. 10. 6. 22:19

5.함수

-함수란? : 여러 번 반복되는 중복된 프로그래밍을 최소화 하는 것

함수의 정의 : 만들어진 함수, 실행이 가능한 함수를 일컬음

함수의 호출 : 함수의 실행을 명령하는 행위

인자의 전달 : 함수의 실행을 명령할 때 전달하는 입력 값

-종류

>일반

+형식

ex)

int main(void)

{

함수의 몸체

}

int : 출력의 형태

main : 함수의 이름

void : 입력의 형태

, 출력의 형태가 int이고 입력의 형태가 voidmain이라는 이름의 함수

 

ex)

#include<stdio.h>

 

int Large_Num(int a, int b); // 함수 원형 선언

 

int main(void)

{

printf("34중에서 큰 수는 %d 이다. \n",Large_Num(3,4)); // 함수 호출

printf("72중에서 큰 수는 %d 이다. \n",Large_Num(7,2));

 

return 0;

}

 

int Large_Num(int a, int b) // 함수 정의

{

if(a>b)

return a;

else

return b;

}

>재귀 함수

:함수 내에서 자기 자신을 다시 호출하는 형태의 함수 호출

ex)

#include<stdio.h>

 

void Recursive(int n)

{

printf("Recursive Call! \n");

if(n == 1) // 재귀함수 탈출 조건

return ;

Recursive(n-1); // n-1을 전달, n의 값을 하나 줄임

}

 

int main(void)

{

int a = 2;

Recursive(a);

return 0;

}

 

 

+변수의 범위

>지역 변수

:중괄호 내에 선언된 변수

함수가 호출될 때 메모리상에 올라갔다가, 함수가 종료되면 메모리상에서 사라진다

외부에 선언된 동일한 이름의 변수를 가릴 수 있다

 

>전역 변수

:프로그램 어디에서나 접근이 가능한 변수

메모리 공간을 할당받고 초기화가 이뤄지면, 프로그램이 종료될 때 까지 소멸되지도 않고 초기화도 두 번다시 일어나지 않는다.

 

>static 변수

:전역 변수처럼 프로그램이 종료될 때까지 사라지지 않는다

함수내에서 선언하며, 메모리 할당과 함께 자동 소멸된다

함수가 호출될 때마다 자동 초기화되지 않는다.(메모리 할당 될 때 1회만 초기화 된다)

 

ex)

#include<stdio.h>

 

void fct(void);

 

int main(void)

{

itn i;

for(i = 0; i<5; i++)

fct();

 

return 0;

}

 

void fct(void)

{

static int val = 0;

val++;

printf("%d",val);

}

 

실행 결과 : 1 2 3 4 5

<참조 : C 열혈강의>