이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
MATLAB 코드로부터의 코드 생성을 위한 스토리지 클래스
Embedded Coder® 라이선스를 보유하고 있다면, 스토리지 클래스를 사용하여 생성된 C/C++ 코드 내 전역 변수의 선언 및 정의를 제어할 수 있습니다.
코드 생성이라는 맥락에서, 스토리지 클래스는 생성된 코드 내에서 변수의 선언과 정의를 결정하는 사양입니다. 코드 생성의 경우, ‘스토리지 클래스’라는 용어는 C 언어의 스토리지 클래스 지정자와 같은 의미가 아닙니다.
스토리지 클래스를 사용하면 생성 코드를 외부 코드와 통합할 수 있습니다. 생성된 변수를 외부 코드에서 볼 수 있도록 설정할 수 있습니다. 또한 외부 코드에서 선언된 변수를 코드 생성 과정에서 볼 수 있도록 설정할 수도 있습니다. MATLAB® 코드에서 코드를 생성하는 경우 전역 변수에만 스토리지 클래스를 사용할 수 있습니다. 스토리지 클래스는 다음을 결정합니다:
전역 변수의 선언과 정의가 포함된 파일의 위치.
전역 변수가 외부 코드에서 가져온 것인지, 아니면 외부 코드에서 사용할 수 있도록 내보낸 것인지 여부.
전역 변수에 스토리지 클래스를 할당하려면 MATLAB 코드에서 coder.storageClass 함수를 사용하십시오. C/C++ 라이브러리나 실행 파일을 생성할 때 Embedded Coder 프로젝트나 구성 객체를 사용하는 경우에만 코드 생성기가 coder.storageClass 호출을 인식합니다.
coder.storageClass의 구문은 다음과 같습니다:
coder.storageClass(global_name, storage_class)
global_name는 문자형 벡터로 지정된 전역 변수의 이름입니다. global_name는 컴파일 시 상수여야 합니다.
storage_class는 다음 값 중 하나일 수 있습니다.
| 스토리지 클래스 | 설명 |
|---|---|
'ExportedGlobal' |
|
'ExportedDefine' | 헤더 파일 |
'ImportedExtern' | 헤더 파일 |
'ImportedExternPointer' | 헤더 파일 |
스토리지 클래스에는 다음과 같은 요구 사항과 제한 사항이 있습니다:
전역 변수를 선언하는 함수 내에서 해당 전역 변수에 스토리지 클래스를 할당하십시오. 하나 이상의 함수에서 스토리지 클래스를 지정할 필요는 없습니다.
전역 변수에 스토리지 클래스를 할당한 후에는 해당 전역 변수에 다른 스토리지 클래스를 할당할 수 없습니다.
상수 전역 변수에는 스토리지 클래스를 할당할 수 없습니다.
ExportedDefine스토리지 클래스를 갖는 전역 변수는 스칼라여야 하며, 복소수나 다중 워드 스칼라일 수는 없습니다. 코드 내에서 전역 변수는 읽기 전용으로만 사용해야 하며, 쓰기 작업은 허용되지 않습니다.
전역 변수에 스토리지 클래스를 지정하지 않으면, 선언 위치를 제외하고는 해당 변수가 'ExportedGlobal' 스토리지 클래스를 가진 것처럼 동작합니다. 'ExportedGlobal' 스토리지 클래스의 경우, 전역 변수는 파일에 선언됩니다. 전역 변수에 스토리지 클래스가 지정되지 않은 경우, 해당 변수는 entry_point_name.h 파일에 선언됩니다.entry_point_name_data.h