.dtors
의 함수와 atexit()
이라는 함수의 차이점은 무엇입니까?C++에서 .dtors와 atexit()의 차이점
내가 알기로 ((destructor))
속성으로 표시된 기능은 .dtors
세그먼트에 있으며 종료 후 호출됩니다. 마찬가지로 atexit(fctName)
을 사용하여 추가 된 함수는 배열에 배치되고 일반 실행 종료 후에도 호출됩니다.
그렇다면 C++은 왜 두 가지 별개의 메커니즘을 제공합니까? 하나만 할 수있는 뚜렷한 것들이 있습니까? atexit()
을 사용하여 동적으로 함수를 추가 할 수 있습니까?
.dtors
의 함수 또는 atexit()
의 함수가 추가 된 함수도 있습니다.
C++은 .dtors 세그먼트를 제공하지 않습니다. 구현 세부 사항입니다. 'destructor' 속성은 표준에 의해서도 정의되어 있지 않습니다. 그것은 (C) 언어의 확장입니다. 'atexit'는 C 표준에 정의되어 있으므로 C에서 상속 받았기 때문에 C++에 있다고 말할 수 있습니다. – user2079303