C 라이브러리에서 생성자 기호의 이중 정의
C에서 생성자 정의는 nm로 검사할 때 라이브러리에 두 번 나타납니다. 이는 다형성 지원을 위해 여러 생성자 항목이 필요한 Itanium C ABI 때문입니다.
생성자의 잘못된 이름은 해당 목적을 나타냅니다.
클래스에 가상 기본이 없더라도 클래스의 경우, GCC는 ABI의 다형성 지원 결과로 두 생성자를 모두 내보냅니다. 이 동작은 GCC에서 알려진 문제로 간주되며, 다형성이 포함되지 않은 경우 컴파일러가 이 동작을 잠재적으로 최적화할 수 있습니다.
다양한 유형의 생성자에는 다음과 같은 의미가 있습니다.
생성자 기호의 이중 방출은 일반적으로 문제를 일으키지 않지만 nm과 같은 도구를 사용하여 라이브러리 기호를 검사할 때 혼란을 초래할 수 있습니다.
위 내용은 C 라이브러리에 생성자 기호가 두 개 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!