진입점 함수 입력값의 유형 지정하기
C와 C++는 정적으로 유형이 지정되는 언어이므로 코드 생성기는 코드 생성 중에 생성된 코드에 있는 모든 변수의 클래스와 크기를 확인해야 합니다. 특정 변수 유형을 갖는 C/C++ 코드를 생성하려면 진입점 함수에 대한 모든 입력의 유형을 지정해야 합니다. 입력 유형 지정은 코드 생성 워크플로에서 핵심적인 단계입니다.
진입점 함수가 입력값을 갖지 않는 경우 이 단계를 건너뛸 수 있습니다. 진입점 함수가 아닌 함수에 대한 입력값의 클래스와 크기를 지정할 필요는 없습니다.
입력 유형 지정 방법
진입점 함수에 대한 모든 입력값의 클래스와 크기를 지정해야 합니다. 클래스, 구조체, 셀형 배열과 같은 집합체 유형의 경우 각 속성, 필드, 요소의 클래스와 크기도 각각 지정해야 합니다. 입력 유형은 MATLAB® Coder™ 앱에서, 명령줄에서 -args
옵션과 함께 codegen
명령을 사용하여, MATLAB 진입점 함수에서 함수 인수 유효성 검사(arguments
블록)를 사용하여 또는 MATLAB 코드에서 사전 조건 지정(assert
문)을 사용하여 지정할 수 있습니다. 다음 표에서는 이러한 각 방법의 장점과 단점을 간략하게 설명합니다.
방법 | 장점 | 단점 |
---|---|---|
|
| |
|
| |
Use Function Argument Validation to Specify Entry-Point Input Types |
|
|
|
|
사용되지 않는 입력값
사용되지 않는 입력 변수를 갖는 진입점 함수가 하나 이상 있는 경우, 사용하는 입력 유형 지정 방법에 따라 코드 생성 시 특정 사항을 고려해야 합니다.
codegen
함수를-args
옵션과 함께 사용하여 입력 유형을 지정하는 경우 사용되지 않는 입력 변수를 지정할 필요가 없습니다. 그러나 사용되는 모든 변수는 함수 선언에서 사용되지 않는 모든 변수 앞에 나타나야 합니다. 사용되지 않는 변수와 지정되지 않은 변수는 생성된 코드에 나타나지 않습니다.MATLAB 진입점 함수에 대한 모든 입력값이 사용되지 않고
codegen
함수를-args
옵션과 함께 사용하여 입력 유형을 지정하는 경우, 빈 셀형 배열{}
을-args
에 전달하여 입력값이 없는 C/C++ 함수를 생성할 수 있습니다.MATLAB Coder 앱을 사용하여 입력 유형을 지정하는 경우 사용되지 않는 입력값의 유형을 지정해야 합니다. 사용되지 않는 입력값은 생성된 코드에 나타납니다.
arguments
블록이나assert
문을 사용하여 MATLAB 코드에 입력 유형을 정의하는 경우 사용되지 않는 입력값의 유형을 지정해야 합니다. 물결표 문자(~
)를 사용하여 사용되지 않는 입력값을 지정할 수 없습니다. 사용되지 않는 입력값은 생성된 코드에 나타납니다.
팁
고정소수점
fi
(Fixed-Point Designer) 객체인 입력값을 지정하려면 연결된numerictype
(Fixed-Point Designer) 객체와fimath
(Fixed-Point Designer) 객체를 구성해야 합니다.진입점 함수에서 다중 시그니처 MEX 함수를 생성하려면 동일한 진입점 함수에 대해 여러 개의
-args
를 지정합니다. 생성된 MEX 함수는 코드 생성 중에 제공한 여러 개의 시그니처와 함께 작동합니다. 다중 시그니처 MEX 함수 생성에 대한 자세한 내용은 Generate Code for Functions with Multiple Signatures 항목을 참조하십시오.주어진 형태의 빈 배열을 받는 MEX 함수, SIL 함수 또는 PIL 함수를 생성하는 경우 생성된 함수는 다른 형태의 빈 배열도 받습니다. MEX 함수, SIL 함수 또는 PIL 함수는 코드 생성 중에 지정된 배열의 형태와 일치하도록 빈 런타임 입력 배열의 형태를 변경합니다. Incompatibility with MATLAB Due to Resizing of Empty Arrays by MEX, SIL, and PIL Functions 항목을 참조하십시오.