반응형

************ 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