Main Content

C++ 코드 생성

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

C++ 코드 생성하기

C++ 코드를 생성하려면 C 코드를 생성하는 데 사용하는 것과 동일한 전체 워크플로 단계를 따릅니다. 예제는 Generate C Code at the Command Line 항목을 참조하십시오. 명령줄에서 선택하거나, 코드 생성 구성 설정을 사용하거나, MATLAB Coder 앱에서 선택하여 C++ 언어 옵션을 설정합니다.

0개의 입력값을 받는 함수 foo에 대한 C++ 코드를 생성한다고 가정하겠습니다.

  • 명령줄에서 -lang:c++ 지정자를 사용합니다. 이 지정자는 C++ 코드를 생성하는 빠르고 쉬운 방법을 제공합니다. 예를 들어, foo에 대한 C++ 정적 라이브러리와 C++ 소스 코드를 생성하려면 다음을 입력합니다.

    codegen -config:lib -lang:c++ foo
    
  • 구성 객체에서 TargetLang 파라미터를 C++로 설정합니다. 예를 들어, C++ 동적 라이브러리를 생성하려면 다음을 입력합니다.

    cfg = coder.config('dll');
    cfg.TargetLang = 'C++'; 
    codegen -config cfg foo 
    
  • 앱의 코드 생성 단계에서 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에 설명되어 있습니다.

참고 항목

관련 항목