반응형
************ c에서의 매크로 함수 *************
2줄이상 구현이 힘들다.
1 2 3 4 5 6 7 8 9 10 11 | #include<iostream> #define SUM(x) ((x)+(x)) int main(void) { std::cout<< SUM(5) << std::endl; return 0; } | Crocus |
매크로 함수의 장단점
장점 : 실행 속도의 향상
단점 : 구현의 어려움 ( 2줄 이상 가기 힘듦 )
*********** c++에서의 인라인 함수 ************
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <iostream> inline int SUM(int x) { return x+x; } // 여기 inline을 붙이면 인라인 함수가 된다. // 구현의 용이성도 생긴다. int main(void) { std::cout<<SUM(5)<<std::endl; return 0; } | Crocus |
**
1 2 3 | #define abc(x) ((x)+(x)) | Crocus |
를 하면
전처리기에 의해서 처리되어 디버깅시 오류를 못잡지만,
1 2 3 4 5 6 7 8 9 | inline int abc(int x) { return x+x; } | Crocus |
를 하면 컴파일러가 디버깅시 오류가 있다면 잡아준다.
또한 c++에서는 inline선언을 사용하면 컴파일러가
inline가 굳이 필요없다 판단될 시 없애므로
애매모호 할때는 inline선언을 적어주어도 된다.
반응형
'Basic > C++' 카테고리의 다른 글
c++ using 선언 (0) | 2015.03.07 |
---|---|
c++ 이름공간(namespace) (0) | 2015.03.07 |
c++ 디폴트 매개변수 (0) | 2015.03.07 |
c++ 함수 오버로딩 (0) | 2015.03.07 |
c++ 입력 및 출력, bool타입, 레퍼런스 (0) | 2015.03.07 |