> 백엔드 개발 > C++ > 임시 함수 인수는 C에서 얼마나 오래 지속됩니까?

임시 함수 인수는 C에서 얼마나 오래 지속됩니까?

DDD
풀어 주다: 2024-12-27 07:06:17
원래의
940명이 탐색했습니다.

How Long Do Temporary Function Arguments Live in C  ?

임시 함수 인수의 수명 이해

아래 예시와 같이 함수 인수로 인스턴스화된 임시 객체를 활용하는 경우:

class MyClass
{
  MyClass(int a);
};

myFunction(MyClass(42));
로그인 후 복사

파괴 행위를 이해하는 것이 중요합니다. C 표준은 소멸자의 타이밍에 대한 통찰력을 제공합니다.

임시 인수의 소멸 타이밍

임시 객체는 자신이 거주하는 완전한 표현이 끝날 때 종말을 맞이합니다. 완전한 표현식은 다른 표현식 내에 중첩되지 않고 독립된 표현식을 나타냅니다. 일반적으로 이는 문 완성을 지정하는 세미콜론(또는 조건문, 루프 및 스위치 문의 닫는 괄호)에 해당합니다. 주어진 예에서는 함수 호출로 완전한 표현식이 종료됩니다.

임시 수명 연장

임시 항목을 임시 항목으로 참조하여 수명을 연장할 수 있다는 점은 주목할 만합니다. 지속적인 참조. 이 전략은 참조 수명과 일치하도록 수명을 연장합니다.

MyClass getMyClass();

{
  const MyClass& r = getMyClass(); // full expression ends here
  ...
} // object returned by getMyClass() is destroyed here
로그인 후 복사

이 기술을 사용하면 MyClass obj = getMyClass();를 사용할 때와 비교하여 불필요한 복사 생성자 호출을 피하여 성능을 최적화할 수 있습니다. 그러나 보급률은 다소 낮습니다.

위 내용은 임시 함수 인수는 C에서 얼마나 오래 지속됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿