Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2403] [답변] 함수 선언, 정의, 호출
정성훈.해미 [sage5nor] 2119 읽음    2003-04-15 10:47
[함수선언]--------------

어떤책에서는 함수원형이라고도 하더군요.

변수선언과 같다고 보시면 되겠네요.

"이렇게 생긴 함수가 있다"고 알려주는 것입니다.

선언는 main함수보다 위에 해야 됩니다.

함수의 세부 기능(내용)을 표시하는게 아니고

어떤 함수가 있는지만 알려주는 것..

(형식)-------------

<함수 타입> 함수이름(인수);

예1)--------------
void Total(void);

예2)----------------
int Sum(int a, int b);



[함수정의]--------------

선언해 준 함수의 실제 세부 기능이 있는부분입니다.

"이러한 기능을 한다"라고 써주는부분.

main함수의 위 , 아래 아무데나 올 수 있습니다.

위에 올 경우는 따로 선언할 필요가 없고..

아래에 정의할 경우에만 main함수 위에 함수선언을 해 주십시오.

(형식)------------

<함수 타입> 함수이름(인수)
{

    // 함수가 할 기능
}


예1)-------------
void Total(void)
{
    total_num = 0;

    for(int i=0; i<Max_num; i++)
    {
        total_num += num[i];
    }
    printf("Total: %d", total_num);
}

예2)-------------------
int Sum(int a, int b)
{
    int temp;

    temp = a + b;

    return temp;
}



[함수호출]-------------

호출은 말 그대로 함수를 불러오는부분.

"야..니 여기서 일좀 해!" 이러한부분이 되겠지요.

호출은 해당 함수를 사용할려는 부분에서 쓰면 됩니다.

(형식)------------

함수이름(내용);

예1)-----------------

int num[Max_num];

void main(void)
{
    // 생략..

    Total();   //main함수에서 호출한 것..

    //생략..
}

예2)-----------------

void main(void)
{
    int num1, num2;
    int sum_num;

    printf("숫자(1)를 입력하세요: ");
    scanf("%d", &num1);

    printf("숫자(2)를 입력하세요: ");
    scanf("%d", &num2);

    sum_num = Sum(num1, num2);    //함수 호출 부분..

    printf("숫자의 합은 %d입니다.",sum_num);
}

-------------------------------------------------------------

자 잘 보면...함수 선언(원형)은..

:       finalWage = calcWage(totWork, bonus);

정수인자 2개를 받아서 계산한 다음 정수로 반환해주는 함수...즉,

int calcWage(int totWork, int bonus);

이런형태가 되겠군요.

이것을 메인함수 위부분에 써주면 되겠군요.


정의는 작업시간과, 보너스를 바탕으로 계산만 해주는 기능으로

해 주면 되겠네요.


님이 만드신 소스의  초과 근무수당 계산 및 출력부분을

다음 형태로 바꾸고 나머지를 함수안에 넣으면 되겠습니다.


: //초과 근무수당 계산 및 출력
:
:     if (totWork > 40){ // 주당 40 시간을 기준으로 초과 수당을 시간당 9000원 계산
:
:       bonus = 100000;
:
:       finalWage = calcWage(totWork, bonus);
:
:       }
:
:     else {  // 40 시간이하인 경우 보너스는 50000
:
:       bonus = 50000;
:
:       finalWage = calcWage(totWork, bonus);
:
:       }
:
:       cout << "final wages: " << finalWage << endl;
:
:     system("PAUSE");
:     return 0;
:        }

자...함수 정의을 해 보지요.

int  calcWage(int totWork, int bonus)
{
    int Wage;

    if(totWork > 40) Wage = 8000*40 + (totWork-40)*9000 + bonus;
    else Wage = totWork*8000 + bonus;

    return Wage;
}

함수 정의는 님이 만드신 소스의 계산부분만 함수 안에 넣은 결과..

함수정의를 메인함수 아래에 써 넣으면 끝........

+ -

관련 글 리스트
2401 함수정의 도움좀 부탁해요!! >ㅅ<;; 김다은 1447 2003/04/15
2403     [답변] 함수 선언, 정의, 호출 정성훈.해미 2119 2003/04/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.