반응형
C언어 함수의 구조는
[return 타입] 함수명( [input타입 변수명] )
ex) int main( int a )
함수명은 말 그대로 함수 이름 지정.
input 은 이 함수가 실행되기 위한 입력 값을 지정하는것.
return 타입은 이 함수가 연산이되어 return되는 값의 타입.
C언어 함수 만들기 템플릿은 아래와 같다.
<함수 선언>
<Main 함수>
<함수 정의>
아래 예를 보면 알기 쉽다.
#include <stdio.h>
// 함수의 선언
int Increment_num(int n);
int main(void)
{
int a = 2;
int num;
num = Increment_num(a);
printf("%d\n", num);
return 0;
}
// 선언한 함수의 실제 정의 (몸통)
int Increment_num(int n)
{
// 위에서 받는인자 n이 오면 증가시켜 리턴
n++;
return n;
}
int a 값이 함수에가서 계산되는 형태.
a값의 변화는 없다. a는 단지 함수의 입력인자(input)이 되었을 뿐이다.
그리고 함수는 a에 들어있는 값 2가 연산이 되어 n으로 리턴한다.
리턴된 값 3은 최종적으로 num에 저장된다.
아래와 같이 2개 그리고 그 이상의 input인자도 받을 수 있다. 다만 2개 이상의 return은 불가능하다.
아래와 같이 if 문에 맞는 결과를 따로 return하도록 함.
int Increment_num(int n, int m)
{
if (n > m)
{
n++;
return n;
}
else
{
m--;
return m;
}
}
* 알아두기.
- 로컬함수 내에서 선언한 변수는 해당 함수가 수행되는 동안 유효하며, 결과를 리턴하면 메모리를 해제 하여 사라진다.
- 변수를 전체 함수에서 사용하고 싶다면 "전역변수"으로 선언해야 함.
반응형
'C언어 \ C++' 카테고리의 다른 글
[C언어] 반복문 탈출 break 문, 반복문 계속 continue 문 (0) | 2022.01.29 |
---|---|
[C언어] C언어 삼 항 연산자 (한줄 조건 연산자), 한줄짜리 간단한 연산자 (0) | 2022.01.29 |
[C언어] 자료형 변환 시켜 계산하기 (강제로 자료형 변환시키기) (0) | 2022.01.25 |
[C언어] C언어 소수 자료형 float와 double의 차이점. ('double'에서 'float'(으)로 잘립니다.) (0) | 2022.01.25 |
[C언어] C언어 배열(array) 반복문(for문)으로 모두 출력하기 (0) | 2022.01.23 |