그린티라떼
개발공간
그린티라떼
전체 방문자
오늘
어제
  • 분류 전체보기 (26)
    • unity (6)
      • 개발 (4)
      • iTween (0)
      • error (2)
    • 게임서버 (5)
    • C++ (7)
      • 문법 (5)
      • 알고리즘 (2)
    • C# (5)
    • CS지식 (1)
    • 기타 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • c#
  • var
  • 제네릭
  • Functions
  • 컨테이너
  • 다중상속의 문제점
  • 메모리영역
  • cout 스트림 버퍼
  • interface
  • 정규 표현식
  • Container
  • delegate chain
  • inline 함수
  • cs지식
  • Dynamic
  • 유니티 빌드 에러
  • 일반화컬렉션
  • property
  • 형식매개변수의 제약
  • regex
  • unity
  • 함수 호출 오버헤드
  • Delegate
  • 일반화
  • C++
  • 데이터타입
  • 함수호출
  • Gradle build failed
  • object
  • 유니티

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
그린티라떼

개발공간

C++/문법

C++) cout 스트림 버퍼/ 함수 호출 오버헤드/ Inline함수

2021. 5. 8. 15:09
//cout의 스트림 버퍼에 단순히 삽입하고 끝.
std ::cout << '\n';
//endl() 함수는 '\n'을 cout의 스트림 버퍼에 넣고, cout에게 현재 스트림 버퍼에 있는 데이터를 즉각 장치에 출력하도록 지시
std ::cout << std ::endl;

함수 호출 오버헤드

함수 호출   돌아올 리턴 주소 저장 → CPU 레지스터 값 저장 → 함수의 매개 변수를 스택에 저장   함수 실행
 ↗   ↘
   
↖ ↙
  돌아갈 주소를 알아내어 리턴 ← 저장한 레지스터 값 CPU에 복귀 ← 함수의 리턴값을 임시 저장소에 저장  

 


Inline 함수

  • 컴파일러는 인라인 함수를 호출하는 곳에 인라인 함수의 코드를 그대로 삽입하여 함수 호출이 일어나지 않게 함.
  • 즉, 함수 호출 오버헤드가 없어지게 됨.
  • 제약 사항 : 컴파일러는 함수의 크기나 효율을 따져서 불필요한 경우 인라인선언을 무시함.
  •                : 재귀 함수, static 변수, 반복문, switch문, goto문등을 가진 함수는 허용x.
  • 클래스의 선언부에 멤버함수를 직접 구현시 인라인 함수로 자동 처리됨.

 

'C++ > 문법' 카테고리의 다른 글

(C++) 함수의 인자 또는 리턴 값에 STL 데이터 타입에 관하여  (2) 2022.11.12
c++ regex 정규 표현식  (0) 2021.12.22
if문 속 비교연산에서 순서의 비밀  (0) 2021.08.30
C++) Container비교  (0) 2021.08.25
    'C++/문법' 카테고리의 다른 글
    • (C++) 함수의 인자 또는 리턴 값에 STL 데이터 타입에 관하여
    • c++ regex 정규 표현식
    • if문 속 비교연산에서 순서의 비밀
    • C++) Container비교
    그린티라떼
    그린티라떼

    티스토리툴바