인라이닝(Inlingin)
함수 기반 메모리 조각화를 줄이는데 유용하며 인라이닝 함수를 사용할경우 코드길이가 커지나 흐름변화가 줄어들며 코드를 더 선형적(단순한) 방식이 되고 프로그램 속도가 더 빨라지는 장점이 있다
(인라인이 붙어있을경우 C++, 코틀린에선 호출,인라인 작업을 비교하고 더 빠른것을 사용한다고 한다)
//일반방식
void print(){
printf("Hello, world!\n");
}
int main(){
print();
return 0;
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
//인라인 방식
inline void test1() {
printf("hello");
}
int main() {
test1(); //printf("hello");
return 0;
}
| 인라인 방식 | 일반적인 호출 | |
| 1 | main 시작 | main 시작 |
| 2 | printf실행 | test1으로 이동 |
| 3 | main 종료 | 스택프레임 적재 |
| 4 | printf 실행 | |
| 5 | 스택 포인터 원위치 | |
| 6 | main으로 복귀,종료 | |
| 실행속도 | 상대적으로 빠름 | 상대적으로 느림 |
| 메모리 사용 | 상대적으로 큼 | 상대적으로 적음 |