나는 그 이유가 상호 운용성만큼 성능과 많이 관련이 있다고 생각하지 않습니다. C ++ 언어는 C 언어보다 더 복잡하지만 성능 측면에서 어느 쪽이든 눈에 띄는 차이가 있어서는 안됩니다. 일부 C ++ 구문은 C에 해당하는 std::sort것보다 빠르며 (보다 빠름 qsort) 다른 방법에 대한 좋은 예가있을 수 있습니다.
편집 : 상호 운용성 측면에서 ...
기본적으로 C ++ 표준은 다른 컴파일러 / 버전으로 생성 된 바이너리 간의 쉬운 상호 운용성을 위해 필요할 수있는 몇 가지 사항을 정의하지 않습니다. 여기서 가장 주목할만한 문제는 바이너리의 기호에 대한 명명 규칙입니다. C에서 언어는 코드의 각 기호에서 이진 기호 이름으로의 단일 매핑을 정의합니다. 호출 된 함수는라는 my_function바이너리에 기호를 생성합니다 my_function. 반면에 함수 오버로딩과 같은 기능으로 인해 C ++ 함수의 이름을 엉망 으로 만들어야합니다.(이진의 다른 함수 기호로 변환되어 인수 및 반환 유형의 유형을 인코딩) 표준은 맹 글링이 수행되는 방법을 정의하지 않습니다. 이는 C ++의 동일한 함수가 컴파일러에 따라 다른 기호로 컴파일 될 수 있음을 의미합니다 ( extern "C"C ++에서 해당 함수에 대해 C 상호 운용성을 강제하는 데 사용 되지 않는 한 ).
결국, 스크립팅 언어와 네이티브 코드 간의 인터페이스는 내부적으로 구현되는 방법에 대한 세부 정보가 C / C ++ / 다른 네이티브 언어 일 수 있더라도 어쨌든 C 인터페이스 여야합니다.
(저는 의도적으로 언어 전쟁에 뛰어 들고 싶지 않습니다. C ++는 정말 강력하지만 C보다 훨씬 더 복잡한 언어이기 때문에 약간 무섭고 단순 해 보이는 것들이 영향을 미칠 수 있습니다. 공연)