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++ 클래스를 생성합니다. | |
진입점 함수를 C++ 클래스의 메서드로 생성합니다. | |
MATLAB 네임스페이스에 대응하는 C++ 네임스페이스를 생성합니다. 생성된 모든 코드를 지정한 C++ 네임스페이스에 배치합니다. | |
사용자 지정 C++ 코드와 생성 코드 간에 동적으로 할당된 배열을 전달합니다. 생성된 C++ 코드는 | Use Dynamically Allocated C++ Arrays in Generated Function Interfaces |
다음 예제는 이러한 기능의 사용 방법을 보여줍니다.
생성된 C 코드와 C++ 코드 간의 추가적인 차이점
동일한 MATLAB 함수에 대해 C 코드와 C++ 코드를 따로 생성하고 생성된 소스 코드를 검사해 보면, 구현상의 차이점이 있습니다. 다음은 몇 가지 주목할 만한 차이점입니다.
생성된 C++ 코드에는 이름은 동일하지만 여러 개의 시그니처를 지원하는 오버로드된 함수 또는 메서드가 포함되어 있습니다. C 언어는 함수 오버로드를 지원하지 않습니다.
생성된 C++ 코드는 서로 다른 네임스페이스 계층 구조에서 동일한 식별자 이름을 재사용합니다. 예를 들어, 최상위 네임스페이스
myNamespace_1
과myNamespace_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에 설명되어 있습니다.