C언어의 함수 기초 정리.
1. 함수
2. 함수의 프로토타입
3. 함수의 포인터 인수
함수(Function)
함수의 선언
반환형 함수명 (인수형 인수명, 인수형 인수명...){
처리할 내용
}
함수는 기본적으로 main()함수 전에 선언을 해야한다.
혹은 함수의 프로토타입을 main()함수 전에 선언해 두어야 한다. |
ex1)
1. 정수형 인수 2개를 받아 정수형 값을 반환하는 함수
int add(int a, int
b){
return (a+b);
}
2. 인수를 받지도, 값을 반환하지도 않는 함수
void function2(void){
printf("인수를 받지도
값을 반환하지도 않는 함수.\n");
} |
ex2)
#include <stdio.h>
int add(int a, int b){ /*
add 함수 선언 */
int result;
result = (a + b);
return result;
}
void function2(void){ /*
function2 함수 선언 */
printf("인수를 받지도
값을 반환하지도 않는 함수.\n");
}
void main(void){
int a;
a = add(2, 3);
/* add 함수를 호출하여 리턴값을
변수 a에 저장 */
printf("2+3=%d\n",
a);
function2();
/* function2 함수 호출 */
} |
함수의 프로토타입(Prototype)
함수의 프로토타입 선언
반환형 함수명 (인수형 인수명, 인수형 인수명...);
사용할 함수의 원형을 main()함수 앞에 선언해 두면 함수를 main() 함수 뒤에 선언해도
컴파일시 에러가 발생하지 않는다.
함수들이 많거나 여러 화일에 흩어져 있을 경우엔 헤더파일에 적어두고 인클루드하는 것이 좋다.
(ex: #include "MyPrototype.h") |
ex1)
int add(int a, int b);
void function2(void); |
ex2)
#include <stdio.h>
int add(int a, int b); /*
add 함수의 프로토타입 선언 */
void main(void){
int a;
a = add(2, 3);
printf("2+3=%d\n",
a);
}
int add(int a, int b){ /*
add 함수 선언 */
int result;
result = (a + b);
return result;
} |
함수의 포인터
인수.
함수로 넘겨받은 변수의 값 자체를 변경하고 싶을 때는
포인터를 인수로 사용한다.
ex1)
void increment(int *a){
a++;
}
호출할 때는 주소값을 넘겨준다.
ex2)
increment(&a);
|
ex3)
#include <stdio.h>
void increment(int *a); /*
increment 함수의 프로토타입 선언 */
void main(void){
int a = 0;
increment(&a);
/* a의 주소로
increment 함수를 호출 */
printf("a=%d\n",
a);
} /* 값은 a=1 */
void increment(int *a){ /*
increment 함수의 선언 */
(*a)++;
/* 넘겨 받은 a의 주소값을 참조해
들어가 직접 값을 올린다 */
} |
-2007.11.17
|