- 매크로 함수
#define 전처리기를 사용하여 함수를 정의.
#define 함수명(매개변수)(함수 몸체)
#define Func(num1,num2) num1*num2
void main()
{
std::cout<<Func(10+10,10+10)<<std::endl;
}
일반함수 : (10+10)이 넘어가서 20 * 20 = 400.
매크로 함수는 10+10자체가 num1의 자리로 들어가서 10+10*10+10 = 120이 나온다.
따라서 (num1)*(num2)로 사용해야 한다.
일반적으로 매크로함수는 한두줄짜리 짧은거만 쓰고 거의 쓰지 않는다.
ex) #define EMPTY = 0; 과 같은식으로 문자에 상수를 넣어놓고 코딩시 확인이 편하게 하는 경우도 있다.
- inline 함수
일반함수랑 똑같이 만들어서 매크로 함수처럼 사용.
함수를 호출부에 바로 삽입하는 방식의 함수. 매크로 함수의 단점을 보완
호출부마다 함수 정의부 코드가 복사되므로 전체 코드는 늘어난다. 중요
함수 호출 작업 생략 -> 프로스램 성능 향상.
매크로 : 전처리기, inline : 컴파일러.
inline의 코드크기가 너무 큰 경우 컴파일러가 무시하기도 한다.
객체지향 -> class 배울때 나온다.
- 동적 할당
new, delete : C++의 동적할당 연산자.
new 자료형;
new 자료형 (초기값);
delete 포인터;
new int; : 4바이트의 공간 생성.
시작주소 : 포인터변수로 사용.
malloc/free = 함수. 헤더 파일 필요.
new/delete = 연산자. 헤더 필요 x.
new/delete 연산자로 객체를 할당할 때 생성자와 파괴자 함수를 호출함 << 중요. (아직은 내용을 알 수 없다.)
배열을 생성한 경우 delete [] 포인터; 로 배열을 모두 해제해주어야한다.
'[ IT ] > C++, 자료구조' 카테고리의 다른 글
C++ 전자레인지 만들기 (0) | 2015.06.24 |
---|---|
C++ Access 지정 / 생성자 / 소멸자 /This 포인터 (0) | 2015.06.24 |
C++ Class (0) | 2015.06.24 |
C++ 은행 계좌 관리 프로그램 (0) | 2015.06.24 |
C++ 오버로딩 / 디폴트 매개변수 / 계산기 만들기 (0) | 2015.06.24 |