ABOUT ME

Contact.
Email:yj.anthonyjo@gmail.com
Introduce : CS Student.

Today
-
Yesterday
-
Total
-
  • C++ - 인라인 함수(inline function)
    프로그래밍/C++ 2021. 6. 30. 19:35
    반응형

    보다 함수처럼 정의할 수 있는 메크로.

    메크로의 실행속도가 빠르다는 장정과, 함수의 정의가 편리하다는 장점이 모두 포함되어있다.

    #include<iostream> 
    inline int squre(T x) {
    	return x * x;
    }
    void main() {
    	std::cout << squre(5) << std::endl;
        //std::cout << squre(5.5) << std::endl; // 데이터 손실
    	std::cout << squre(12) << std::endl;
    }
    • 메크로는 전처리기에 의해 처리되는 반면, 인라인 함수는 컴파일러에게 처리된다.
      • 따라서 인라인 함수가 일반함수보다 성능적 측면에서 떨어진다고 판단한다면, 이 inline키워드를 무시해버리기도한다.(최적화의 일환일까?)
    • 인라인 함수는 매개자료형, 결과자료형이 상관없는 매크로와 다르게, 매개변수의 자료형과 출력 자료형이 정해져있다. 따라서 데이터 손실이 발생하기도 한다.
      • template(템플릿)을 이용하면 자료형에 의존적이지 않은 함수를 만들 수 있다. => 인라인에도 적용가능하다.
        #include<iostream> 
        template <typename T>
        inline T squre(T x) {
        	return x * x;
        }
        void main() {
        	std::cout << squre(5) << std::endl; 
        	std::cout << squre(5.5) << std::endl; //에러 생기지 않음.
        	std::cout << squre(12) << std::endl;
        }

     

    반응형

    댓글

Designed by Tistory.