주요 콘텐츠

C++ 코드 생성

MATLAB® Coder™를 사용하면 C 또는 C++ 코드를 생성할 수 있습니다. 코드 생성기는 기본적으로 C 코드를 생성합니다. 생성된 C++ 코드는 C++ 코드를 더 읽기 쉽고 사용하기 쉽게 만드는 기능을 사용할 수 있으며, 이러한 기능은 C 언어에서는 사용할 수 없습니다.

C++ 코드 생성하기

C++ 코드를 생성하려면 코드 생성 워크플로를 따릅니다. MATLAB Coder를 사용한 코드 생성 개요 항목을 참조하십시오.

C++ 코드를 생성하도록 코드 생성기에 지시하려면 다음 접근 방식 중 하나를 사용하십시오.

  • 명령줄에서 codegen 명령과 함께 -lang:c++ 옵션을 사용합니다.

  • 코드 구성 객체에서 TargetLang 속성을 "C++"로 설정합니다.

  • 코드 생성 설정에서 언어 파라미터를 C++로 설정합니다.

  • MATLAB Coder 앱에서 MATLAB Coder 툴스트립에 있는 언어 버튼을 클릭하고 C++를 선택합니다.

생성 코드에서 지원되는 C++ 언어 기능

주요 C++ 언어 기능을 활용하는 코드 생성에 대한 자세한 내용은 다음 도움말 항목을 참조하십시오.

목표추가 정보

MATLAB 코드의 클래스에 대응하는 C++ 클래스를 생성합니다.

Generate C++ Classes for MATLAB Classes

진입점 함수를 C++ 클래스의 메서드로 생성합니다.

Generate C++ Code with a Class Interface

MATLAB 네임스페이스에 대응하는 C++ 네임스페이스를 생성합니다. 생성된 모든 코드를 지정한 C++ 네임스페이스에 배치합니다.

Organize Generated C++ Code into Namespaces

사용자 지정 C++ 코드와 생성 코드 간에 동적으로 할당된 배열을 전달합니다. 생성된 C++ 코드는 coder::array 클래스 템플릿을 사용하여 이러한 배열을 구현합니다. 생성 코드는 이 템플릿과 상호 작용하는 데 사용할 수 있는 단순한 API를 제공합니다.

Use Dynamically Allocated C++ Arrays in Generated Function Interfaces

다음 예제는 이러한 기능의 사용 방법을 보여줍니다.

생성된 C 코드와 C++ 코드 간의 추가적인 차이점

동일한 MATLAB 함수에 대해 C 코드와 C++ 코드를 따로 생성하고 생성된 소스 코드를 검사해 보면, 구현상의 차이점이 있습니다. 다음은 몇 가지 주목할 만한 차이점입니다.

  • 생성된 C++ 코드에는 이름은 동일하지만 여러 개의 시그니처를 지원하는 오버로드된 함수 또는 메서드가 포함되어 있습니다. C 언어는 함수 오버로드를 지원하지 않습니다.

  • 생성된 C++ 코드는 서로 다른 네임스페이스 계층 구조에서 동일한 식별자 이름을 재사용합니다. 예를 들어, 최상위 네임스페이스 myNamespace_1myNamespace_2를 가진 두 개의 서로 다른 네임스페이스 계층 구조에 동일한 유형 이름 myType이 나타날 수 있습니다. C 언어는 네임스페이스를 지원하지 않으며, 이러한 식별자 이름의 재사용도 지원하지 않습니다.

  • 생성된 C 코드의 함수 헤더에는 생성된 C 함수에 대해 extern "C" 식별자를 지정하는 #ifdef __cplusplus include 가드가 포함되어 있습니다. 컴파일러와 링커는 C 코드를 C++ 프로젝트의 일부로 빌드할 때 이러한 식별자를 사용합니다.

  • 생성된 C++ 코드는 C++ 파일에 .cpp 파일 확장자를 사용하고 헤더 파일에 .h 확장자를 사용합니다. 생성된 C 코드는 .c.h 확장자를 사용합니다.

  • 생성된 C++ 코드는 static_cast 같은 몇 가지 C++ 형변환을 사용합니다. 이는 C의 형변환 구문보다 더 명시적입니다.

  • 생성 코드는 C++ 및 C의 다양한 메커니즘을 기반으로 Inf 값과 NaN 값을 정의합니다.

  • 생성된 C++ 코드는 Mapping MATLAB Types to Types in Generated Code에 설명된 대로 사용자 지정 데이터형을 사용합니다.

  • 생성된 C++ 코드는 생성된 C 코드와는 다른 라이브러리를 사용합니다. 예를 들어, C++와 C의 디폴트 언어 표준은 Change Language Standard Used for Code Generation에 설명되어 있습니다.

참고 항목

도움말 항목