안녕하세요. 우당탕탕 개발일지입니다. 열혈 C++책으로 C++ 문법을 다시 정리하려고 합니다. 간단하게 내용 요약하고 문제푼 코드를 올립니다. 한번 올라가는 분량이 적습니다. 가벼운 마음으로 봐주세요. 아자아자 소프트!
♠내용요약 ♠ p33~36
1) 인라인 함수 = 프로그램 코드 안으로 들어가 버린 함수.
- in=내부
- line= 프로그램 코드 라인
=> 매크로 함수의 단점을 보완하고 장점을 유지하기 위해서 사용.
#include<iostream>
inline int SQUARE(int x)
{
return x*x;
}
int main(void)
{
std::cout<<SQUARE(5)<<std::endl;//25
return
}
2) 전처리 문장(#include)
- 다른 파일을 포함
- 소스파일 내 특정 문자열을 다른 문자열로 대치,
- 조건에 따라 코드 일부를 컴파일하지 않게 함.
3) 매크로
매크로 =자주 사용하는 여러 개의 명령어를 묶어서 하나의 키 입력 동작으로 만든 것을 말한다
단순 매크로 | 값을 지정하지 않고 정의 가능. | #define PI 3.1415 |
함수 매크로 | 함수처럼 매개변수가 있는 매크로. | #define SQUARE(x) ((x)*(x)) |
4) 매크로 함수
매크로 함수 | 특징 | 설명 |
장점 | 일반적인 함수에 비해서 실행속도의 이점이 있다. | 실제로 함수 호출이 일어나지 않기 때문에 함수보다 빠르다. |
단점 | 정의하기 어렵다.복잡한 함수는 정의할 수 없다. | 코드를 알아보기 힘들고 디버깅이 힘들다. |
#include<iostream>
#define SQUARE(x) ((x)*(x))
int main(void)
{
std::cout<<SQUARE(5)<<std::endl; //25
return 0;
}
5) 매크로 함수에는 있지만 인라인에는 없는 것.
1. 매크로는 자료형에 의존적이지 않음.= 어떠한 경우에도 데이터 손실이 발생하지 않음.
#define SQUARE(x) ((x)*(x))
inline int SQUARE(int x)
{
return x*x;
}
1-1 인라인에 템플릿을 사용하면 자료형에 의존적이지 않게 만들 수 있음.
#include<iostream>
template <typename T>
inline T SQUARE(T x)
{
return x*x;
}
728x90
'[프로그래밍 언어] > C,C++' 카테고리의 다른 글
[C언어] 배열(array)_ 개념 문제 (1번 ~5번) 답지 (1) | 2024.10.11 |
---|---|
[C언어] 배열(array)_ 개념 문제 (1번 ~5번) (1) | 2024.10.11 |
열혈 C++ 프로그래밍 ch 01-3 매개변수의 디폴트 값 (Default Value) (0) | 2024.05.15 |
열혈 C++ 프로그래밍 ch 01-2 함수 오버로딩 (0) | 2024.03.28 |
열혈 C++ 프로그래밍 ch 01-1 printf와 scanf를 대신하는 입출력 방식 (0) | 2024.03.20 |