본문 바로가기
IT 컴퓨터_프로그램 /c++

메크로함수

by 건축직일상 2015. 10. 18.

//C++메크로 함수


전처리기를 사용한다 

#define    PURE  = 0


프로그램 실행순서

1.프로그램 작성 2. 전처리기 3.컴파일러에 의한 컴파일 4. 링커에대한 링크 5. 실행파일 생성


#define    PI    3.1415

#define    MAX_NAME    20


단순 치환 작업시에 유용하다 


함수의 간단한 기능을 메크로로 써서 구현할수있다


1.메크로 함수는 전처리기에서 단순 치환 작업이 일어나기때문에 자료형을 명시할 필요가 없다 ./ 자료형에 대해 독립적이다


2.함수호출시 비용이 발생 - 메크로는 치환작업 이기 때문에 런타임시에 함수호출에 따른 속도 저하 가 없다


3. 메크로 함수 부분이 실제 코드로 치환되기 때문에 코드의 양이 늘어나는 단점이 있다.


4. 메크로를 이용하여 함수를 대체하는것은 소스의 가독성을 떨어 트린다


디버킹이 불가능함 오류가 났을때 찾기 겁나 힘들다

웬만하면 함수 크기가 작을때 사용하자


#define    SAFE_DELETE(p){if(p != NULL) { delete (p); p = NULL}}



#define  SAFE_DELETE(p)          \

{ \

if(p != NULL)          \

{ \

delete (p); p = NULL;                 \

} \

} \

//이런식의 여러줄로 짜는것도 가능 하지만 줄 끝에 \ 역슬래시 붙어줘야한다
//굳이 이렇게 해야하나? 하는생각듬

//블랙박스가 생기니까 사용을 자제하도록 하자 

'IT 컴퓨터_프로그램 > c++' 카테고리의 다른 글

STL Vector 기초  (0) 2015.10.20
STL 기초 학습  (0) 2015.10.20
템플릿  (0) 2015.10.18
연산자 오버로딩  (0) 2015.10.18
오버라이딩_virtual2  (0) 2015.10.13

댓글