Ex) 두 정수를 입력 받아 평균값을 출력하는 프로그램으로 평균값은average()
함수가 산출한다.
float average(int n1, int n2 );
반환자료형 함수이름 (인자);
{ 명령문 }
avrg = average (num1, num2);
함수이름 (인수 리스트);
TIP : 인수의 개수는 ( , ) 로 구분한다.
scanf
로 입력받은 37, 43은 main()
함수의 num1 = 37 과 num2 = 43 각각 입력받아
float average (int n1, int n2)
에는 n1 = 37; n2 = 43; 이 들어가게 된다.
이때 자료형 int
은 형동등성에 의해 일치해야한다.
return (avg);
return
문은 average()
함수의 실행을 종료함과 동시에, 반환값 avg를 호출자인 main()
함수에 전달한다.
이때 반환값 avg와 average()
함수의 반환자료형은 일치해야한다.
결과
main() 함수는 심볼테이블을 가지고 주소도 가지고 있다. 즉 함수는 주소를 가지고 있는 것이다.
앞 예제 프로그램에서 main()
앞에 다음과 같은 선언문이 있다.
float average (int n1, int n2);
Ex) 프로토타입 에서 type int 만 넣고n1 n2는 생략이 가능하다.
void average(void);
void average();
Ex) 위소스를 분할 컴파일 할 때
main 함수 부분을 a.c 로 저장
average 정의 부분을 b.c 로 저장
[ gcc 컴파일 ]
[ cl 컴파일 ]
Ex) 위 소스를 다른 헤더파일로 정의 하여 분할 컴파일 방법
Ex) 같은 이름의 지역 변수가 두 함수에서 사용되는 프로그램의 예
결과
C언어 강좌 (수학함수/난수생성함수 rand/함수 포인터) (0) | 2016.09.08 |
---|---|
C언어 강좌 (return문/함수 인수 전달기법/재귀함수) (0) | 2016.09.08 |
C언어 강좌 (C언어 연습문제) (0) | 2016.09.07 |
C언어 (텍스트 파일/함수) (0) | 2016.09.07 |
C언어 강좌 (포인터 함수 구성/hexa view) (0) | 2016.09.07 |