프로그래밍과 잡담

[C언어] 기초 7 본문

프로그래밍/C,C++, Win32Api

[C언어] 기초 7

크레온 2009. 3. 14. 14:00
함수(function)

함수란 사전에서 보면 기능이란 뜻이다.

printf 함수 이건 콘솔창에 메시지를 띄우라는 함수다. 이러한 기능을 가진걸 함수라 한다.

함수를 사용하는 이유는

그냥 main 함수 안에다가 다 넣어버려도 작동은 아주 잘 된다.

근데 그렇게 하다보면 메인이 엄청 길어져서 보기도 나쁘고 나중에  유지보수하는데 어려워지게

때문에 함수라는걸 만들어서 여러게로 쪼개서 사용한다.

함수의 사용법도  다른거와 마찬가지로 쉽다.


함수의 형태

리턴타입   함수이름 ( 인자 )  {   내용부  }

리턴 타입은 int 와 같은게 있을 수 도 있고 배열이 있을 수도 있고 구조체가 있을 수도 있다..

즉, 프로그래머 마음대로 원하는 타입을 설정하면된다.

단! 한개의 타입만 리턴된다.

이런거 없다.  int,char fnc();


예제 1)

void print(int t)
{
     printf("%d",t);
}

위에 보면  void라는 타입이 있는데 void는 아무것도 리턴을 안한다는 뜻이다.

그래서 리턴도 없다..


예제 2)
 
int sum(int a, int b )
{
return a + b;
}

위에 보면 리턴 타입이 int 다.  리턴을 할때는 정수형의 타입을 리턴 시켜줘야한다.
int 가 아닌 다른 타입을 넣으면 에러가 나거나 warning이 뜬다.


예제 3)

int* fnc(int *a )
{
*( a + 1) =10;

return a;
}

위에 예제는 배열을 받아서 배열을 리턴 하는 함수다. 배열이 아니라고 하는 사람들이 가끔있는데

배열이다. 포인터를 배우면 나오는거다.  int * 이거를  int[] 로 바꾸면 되는거다.


struct A  struct_function(struct A* a )
{
     a -> c = 'c'
    
     return *a;
}

위에 보면 a -> 요 화살표 같은 게 있는데  구조체를 포인터형식
으로 인자를 받을 경우에는  화살표를 사용한다.
위에 함수는 그냥 억지로 만들어낸거다. 구조체를 리턴 할 수 있다는 걸 보여주기 위해서다.

끝.

-----------------------
궁금한거나 이상한 부분은 댓글을 주세요.

반응형

'프로그래밍 > C,C++, Win32Api' 카테고리의 다른 글

[C언어] 기초 8  (0) 2009.03.14
[C언어] 기초 7-1  (0) 2009.03.14
[C언어] 기초 6  (0) 2009.03.11
[C언어] 기초 5-2  (0) 2009.03.11
[C언어] 기초 5-1  (0) 2009.03.11
Comments