programing

C/C++ 런타임 라이브러리와 C/C++ 표준 라이브러리의 차이점

shortcode 2022. 7. 17. 20:55
반응형

C/C++ 런타임 라이브러리와 C/C++ 표준 라이브러리의 차이점

어떤 차이점이 있는지 말씀해 주시겠어요?

그런데 C++ 도서관이나 C 도서관이라는 게 있나요?

https://en.wikibooks.org/wiki/C_Programming/Standard_libraries#Common_support_libraries,에 따르면 Standard Library와 Runtime Library 사이에는 매우 중요한 차이가 있습니다.표준 라이브러리는 프로그래머가 사용할 수 있는(항상 사용 가능한) 함수를 정의하는 반면(최소한 C에서는) 런타임 라이브러리는 특정 플랫폼에서 프로그램을 실제로 실행하기 위해 필요한 함수(플랫폼 고유/벤더 고유)를 포함합니다.

예를 들어 printf()는 C 표준 라이브러리의 일부이며 프로그램 시작(많은 경우 프로그래머에게 보이지 않음)은 런타임 라이브러리에서 구현됩니다.예를 들어 표준 라이브러리를 사용하지 않는 C-프로그램을 작성할 수 있지만 그렇지 않으면 프로그램을 실행할 수 없기 때문에 런타임 라이브러리가 항상 필요합니다.하지만, 솔직히 말해서, 이것은 거의 소용이 없을 것입니다. 왜냐하면 스탠다드 라이브러리가 없는 C-프로그램은 입출력을 할 수 없기 때문에 인상적인 결과를 알려줄 수 없기 때문입니다.

이 두 가지 차이점에 대해 혼란을 일으키는 것은 다음과 같습니다.

  1. 모든 경우에 런타임 라이브러리가 필요/사용되며 (거의) 모든 경우에 표준 라이브러리가 사용됩니다.또한 표준 라이브러리는 런타임 라이브러리에 의존할 수 있으며 대부분의 경우 동일한 벤더에 의해 개발됩니다.따라서 구분이 명확하지 않고 대부분의 경우 필요하지 않다.
  2. Microsoft는 C 표준 라이브러리와 C 런타임 라이브러리를 통합하고 C 런타임 라이브러리라고 부릅니다.

C++ Standard Library그리고.C Standard LibraryC++ 및 C 표준이 정의하는 라이브러리로 C++ 및 C 프로그램에 제공되어 사용할 수 있습니다.이것은 이 단어들의 일반적인 의미입니다.다른 정의는 본 적이 없습니다.C++ 자체에서는 다음과 같이 정의하고 있습니다.

C++ 표준 라이브러리는 확장 가능한 프레임워크를 제공하며 언어 지원, 진단, 일반 유틸리티, 문자열, 로케일, 컨테이너, 반복기, 알고리즘, 숫자 및 입출력 컴포넌트를 포함합니다.언어 지원 컴포넌트는 메모리 할당(5.3.4, 5.3.5) 및 예외 처리(조항 15) 등 C++ 언어의 특정 부분에서 필요합니다.

C++ Runtime Library그리고.C Runtime Library그렇게 똑같이 사용되지 않나.어떤 이들은 프로그램 런타임 구현하는 코드를(,처럼 사용하는 런타임 도서관은 그 부분이라고 말한다.std::type_info로 물건들은 그들은 컴파일 시간(매크로 정의처럼)을 할 때 사용하는 것과 반대 또는 코드)신호 처리기를 지원한다.이 사용은 좀처럼 다른 사람들은 런타임 도서관은 하나로 정정에 컴파일 시간에 반대하는 부하 시간 프로그램에 동적으로, 연관이 되어 있다고 말한다.그것에 대해 공유된 도서관이나 동적으로 연결되어 도서관 더 나은 용어이다.

C++ Library그리고.C Library니 매우 넓은 의미.그들은 그냥 도서관 C++및/또는 C로 쓰여진 말은

위의는 단지 C++및/또는 C로 제한되지 않에는 이무기 도서관이python 표준 라이브러리도 있다.

서론

기능 ISOC/C++ 표준 필요한 수행에 필요한 모든 필요한 집합의 C/C++ 표준 라이브러리는 어떠한 구현.(C++표준 라이브러리의 위키 피디아 정의).

보통 SDK의 형태로 제공되고 있거나 정정은 프로그램에서 SDK를 가지고 있는 모든 것이 SDK사용할 필요한 운영될를 사용하도록 연결되어 설치되어야 하고 기능을 집합의 런타임 라이브러리는 어떠한 구현.런타임 라이브러리는 보통은 SDK과 관련된 이러한 이유로 규칙과 컴파일러 버전곤 했다.(제네릭 런타임 라이브러리의 위키 피디아 정의).

C/C++ 런타임 라이브러리

AC/C++ 런타임 라이브러리 모든 기능이 표준 라이브러리(왜냐하면 그들은 프로그램 자체 내에서 해결되는 구체적인 표준 라이브러리 구현의 헤더만 기능 제외될 수 있는)플러스 기능 집합을 SDK를 특정한 implementa의 의해 요구된다 실행에 필요하는.(또한 헤더로 제공되는 기능만 제외할 수 있습니다).

마이크로소프트의 사례

MSVC140 이전 버전: 최신 Microsoft VC++ 런타임에는 설치 가능한 버전의 VCRedist(VCRedist)가 있었습니다.이 버전은 모든 OS에서 동일했습니다.

MSVC140 이후: 다음 MSVC140 컴파일러부터는 런타임 라이브러리가 다음 두 부분으로 분할되었습니다.

  • UCRT(Universal C Runtime): OS와 함께 출하되며 관련 업데이트 또는 OS 이미지를 통해 배포됩니다.
  • VCRedist: 사용하는 컴파일러에 따라 변경될 것으로 예상되는 부품으로 다양한 OS 버전(MSVC140 이전과 같이 관리됨)에서 공통적인 부품입니다.

다음은 MS C 런타임 참조 문서 링크입니다.MS C Runtime 다운로드 페이지설치 절차 링크입니다.

C++ 표준 라이브러리는 최소한의 컴파일러/툴셋이 갖춰야 하는 표준 라이브러리를 정의하는 용어입니다.C++ 런타임 라이브러리는 표준 라이브러리 기능 및 컴파일러에 필요한 내부 기능을 제공하기 위해 도구 세트와 함께 제공되는 라이브러리입니다.사실, 그 용어들은 종종 서로 바꿔 쓸 수 있다.

또 다른 측면은 C/C++의 경우는 아니지만 위키피디아에 따르면 다음과 같다.런타임 라이브러리

컴퓨터 프로그래밍에서 런타임 라이브러리(RTL)는 컴파일된 실행 가능 바이너리에 런타임 라이브러리에 대한 호출을 삽입함으로써 런타임 환경의 동작 중 일부를 호출하기 위해 컴파일러에 의해 사용되는 일련의 낮은 수준의 루틴입니다.

요약하면:
런타임 라이브러리는 컴파일러에 의해 사용되며 표준 라이브러리는 프로그래머에 의해 사용됩니다.

C++ 표준 라이브러리는 표준 템플릿 라이브러리(STL)와 런타임 라이브러리의 두 가지 주요 부분으로 구성됩니다.STL은 헤더 파일에만 구현되지만 런타임 라이브러리의 구현에는 헤더 파일과 바이너리(Windows 플랫폼의 .lib 및 .dll 파일)가 모두 포함됩니다.

표준 라이브러리는 C++ 표준 문서에서 정의된 특정 이름 및 헤더 세트입니다. 런타임 라이브러리는 컴파일된 프로그램의 일부로 사용되지만 매우 일반적으로 필요하기 때문에 프로그램 실행 파일에 포함되지 않습니다.

대신 이러한 기능은 호스트 머신에 포함되어 있기 때문에(단, 오래된 서비스 팩이 있는 경우 업데이트된 런타임 설치를 고객에게 요청해야 할 수 있습니다) "런타임"에만 프로그램에 포함됩니다.

참조 링크:

http://msdn2.microsoft.com/en-us/library/cscc687y(VS.80).aspx

http://msdn2.microsoft.com/en-us/library/59ey50w6(VS.80).aspx

C++ 런타임 라이브러리에는 cout, fstream 등의 C++에서 제공되는 함수 및 객체가 포함되어 있습니다.

C 런타임 라이브러리에는 printf, scanf, fopen 등의 C 함수가 포함되어 있습니다.

언급URL : https://stackoverflow.com/questions/424549/difference-between-c-c-runtime-library-and-c-c-standard-library

반응형