Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 기초
- 리눅스
- install opencv-4.4.0 on ubuntu 22.04
- 우분투
- while
- Subscribe
- publish
- 그랑사가
- 오늘도 우라라 공략
- C언어
- 환경설정
- topic
- MSG
- mysql
- 오늘도 우라라 펫
- 데이터 베이스
- 반복문
- 오늘도 우라라
- ubuntu
- 프로그래밍
- ros
- Linux
- 등차수열
- 오늘도 우라라 펫 공략
- LeetCode
- 마리아 DB
- mariaDB
- C++
- JungOl
- 토픽
Archives
- Today
- Total
하루의 쉼터
[BasicGrammar] Inline Function 본문
반응형
| 인라인 함수는 함수 호출을 하러 메모리 참조를 하는 것이 아닌 함수 본문이 직접 코드레벨에서 실행되어 호출하지 않고도 코드 블록이 실행되는 형태.
인라인 함수를 얘기할때 나오는 것 중에 하나는 매크로 함수이다.
#include<iostream>
#define SQU(X) ((X)*(X))
int main(){
std::cout << SQU(3 + 2) << std::endl;
return 0;
}
매크로 함수는 전처리기에 의해 처리되는 단순 텍스트 치환이기 때문에, 컴파일러가 실제로 함수 코드를 생성하는 것이 아니라 단순히 텍스트 치환으로 처리가 된다.
매크로 함수는 매크로로 인해 발생하는 일반적인 문제점들인 가독성 저하, 디버깅 어려움, 네임스페이스 충돌 등의 단점이 있다.
이러한 단점을 해결하기 위해 보완되어 나온 것이 인라인 함수이다.
무조건 좋은가?
함수 호출을 한다는 것은 메모리의 주소로 가서 실행하고 돌아오는 과정을 거치기 때문에 이러한 과정에서 실행 시간이 소비된다. 인라인 함수를 사용하면 이러한 점을 줄일 수 있으나 자주 호출함수의 경우에는 코드 영역이 증가 될 수 있으므로 잘고려해야한다.
형태
inline 반환형 함수명(파라미터);
inline int add(int a, int b) {
return a + b;
}
inline double square(double x) {
return x * x;
}
또는
int main(){
double a = 2.0, b = 3.0;
double c = 0.0;
{
std::cout << " c1 : " << c << std::endl;
double x = a, y = b;
c = x - y;
std::cout << c << std::endl;
}
return 0;
}
이러한 형태로 실행된다.
반응형
'프로그래밍 > C++' 카테고리의 다른 글
[C++11] std::is_same (0) | 2023.04.27 |
---|---|
[UtilitiesLibrary] std::size_t - with unsigned int (0) | 2023.04.27 |
[BasicGrammar] FunctionPointer(함수포인터) - with. c++ (0) | 2023.04.16 |
[Error] error: no matching function for call to ‘std::basic_ifstream<char>::open(std::__cxx11::string&)’ (0) | 2022.01.19 |
[Error] terminate called after throwing an instance of 'std::logic_error' (0) | 2021.08.10 |
Comments