Contents

조회 수 6631 댓글 0
Atachment
첨부 '2'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
인라인 함수(Inline Function)란?

- 함수의 호출 시에 함수의 내용이 삽입되는 함수이다.
- 매 함수의 호출마다 동일한 코드가 삽입된다.
- 함수의 호출에 따른 주소연산 및 반환값에 대한 처리부분이 줄어들기 때문에, 일반함수보다 실행시간이 빨라진다.
- 매크로에 비해 구조적으로 사용할 수 있으며 코드의 최적화에 유리하다.

-> 코딩 연습
※ 직접 코딩 해 보길 바란다.
======================================================
#include <iostream.h>

class MyClass
{
public:
    inline int Max(int p, int q);
    inline int Min(int p, int q);
};

inline int MyClass::Max(int p, int q)
{
    return ((p > q) ? p : q);
}

inline int MyClass::Min(int p, int q)
{
    return ((p < q) ? p : q);
}

void main()
{
    int i, j;
    MyClass Test;

    i = 10;
    j = 20;

    cout << "Bigger Number " << i << " and "
        << j << " is " << Test.Max(i, j) << endl;

    cout << "Smaller Number " << i << " and "
        << j << " is " << Test.Min(i, j) << endl;
}

※ MyClass 클래스 멤버함수 Max(), Min()은 인라인 함수로 정의되어 있다.
    main() 함수에서 실행 시 해당 함수의 코드가 삽입되어 실행된다.

※ 첨부파일 소스참고(인라인함수01.cpp)
======================================================
#include <iostream.h>

class MyClass
{
private:
    int x, y;

public:
    void SetXY(int p, int q)
    {
        x = p;
        y = q;
    }

    void ShowXY()
    {
        cout << "X = " << x << endl;
        cout << "Y = " << y << endl;
    }
};


void main()
{
    MyClass Test;
    Test.SetXY(1976, 1980);
    Test.ShowXY();
}

※ 멤버함수 SetXY()는 클래스 선언부에 정의되어 있기 때문에 자동으로 인라인 함수로 정의된다.

    만약 함수의 코드 길이가 컴파일러가 제한하고 있는 길이를 초과하면, 일반 함수 컴파일 된다.

※ 첨부파일 소스참고(인라인함수02.cpp)

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1173 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 18410
1172 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1171 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16384
1170 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21243
1169 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16484
1168 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 10954
1167 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15943
1166 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 927
1165 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 21965
1164 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 724
1163 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 966
1162 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98