Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

列挙型の受け渡し例

関数readEnum

shrlibsampleライブラリの関数readEnumは、入力引数に対応する文字列を表示します。

EXPORTED_FUNCTION char* readEnum(TEnum1 val) { static char outputs[][20] = { {"You chose en1"}, {"You chose en2"}, {"You chose en4"}, {"enum not defined"}, {"ERROR"} }; switch (val) { case en1: return outputs[0]; case en2: return outputs[1]; case en4: return outputs[2]; default : return outputs[3]; } return outputs[4]; }

関数シグネチャは次のようになります。

戻り値の型 名前 引数
cstring readEnum (Enum1)

Enum1入力の値は、shrlibsample.hヘッダー ファイルで定義されます。

typedef enum Enum1 {en1 = 1, en2, en4 = 4} TEnum1;

列挙値の表示

この例では、列挙値をshrlibsampleライブラリの関数readEnumに渡す方法を説明します。ライブラリを読み込みます。

ifnot(libisloaded('shrlibsample')) addpath(fullfile(matlabroot,'extern','examples','shrlib')) loadlibrary('shrlibsample')end

MATLABでは,列挙文字列またはそれと等価の数値として列挙型を表すことができます。字符串引数を指定してreadEnumを呼び出します。

calllib('shrlibsample','readEnum','en4')
ans = 'You chose en4'

等価の数値引数を指定してreadEnumを呼び出します。Enum1の定義により、列挙型en4は 4 と等価であることが宣言されています。

calllib('shrlibsample','readEnum',4)
ans = 'You chose en4'

関連するトピック