sci_types
変数で利用可能な型を定義するC enum
説明
変数で利用可能な型を定義する C enum. この関数を使用する際には, stack-c.h を読み込む必要があります.
利用可能な型のリストを以下に示します:
1 - sci_matrix: doubleの行列
2 - sci_poly: 多項式行列
4 - sci_boolean: 論理値行列
5 - sci_sparse: 疎行列
6 - sci_boolean_sparse: 論理値疎行列
7 - sci_matlab_sparse: matlab疎行列
8 - sci_ints: 整数行列
9 - sci_handles: グラフィックハンドル
10 - sci_strings: 文字列行列
11 - sci_u_function: 未コンパイルのScilab関数
13 - sci_c_function: コンパイル済みのScilab関数
14 - sci_lib: Scilab関数のライブラリ
15 - sci_list: a Scilab list
16 - sci_tlist: Scilab tlist
17 - sci_mlist: Scilab mlist
128 - sci_pointer (Scilab 5.2以前はsci_lufact_pointer): ポインタ
整数またはenum型は 変数の型を確認する際に使用出来ます. enum型の値には明示的な意味があるため,enum型の使用が推奨されます.
例
この例では, Cゲートウェイ関数は1つの引数をとります. switch case構造により, パラメータとして送信した変数の型を表示します.
#include "api_scilab.h" #include "sciprint.h" int sci_mysci_typesrhs(char * fname, void* pvApiCtx) { int iType = 0; int* piAddr = NULL; SciErr sciErr; sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); if(sciErr.iErr) { printError(&sciErr, 0); return 1; } sciErr = getVarType(pvApiCtx, piAddr, &iType); if(sciErr.iErr) { printError(&sciErr, 0); return 1; } switch(iType) { case sci_matrix: sciprint("A matrix of doubles\n"); break; case sci_poly: sciprint("A matrix of polynomials\n"); break; case sci_boolean: sciprint("A matrix of booleans\n"); break; case sci_sparse: sciprint("A sparse matrix of doubles\n"); break; case sci_boolean_sparse: sciprint("A sparse matrix of booleans\n"); break; case sci_matlab_sparse: sciprint("A sparse matlab matrix\n"); break; case sci_ints: sciprint("A matrix of integers\n"); break; case sci_handles: sciprint("A graphic handle\n"); break; case sci_strings: sciprint("A matrix of strings\n"); break; case sci_u_function: sciprint("An uncompiled Scilab function\n"); break; case sci_c_function: sciprint("A compiled Scilab function\n"); break; case sci_lib: sciprint("A library of Scilab functions\n"); break; case sci_list: sciprint("A Scilab list\n"); break; case sci_tlist: sciprint("A Scilab tlist\n"); break; case sci_mlist: sciprint("A Scilab mlist\n"); break; case sci_pointer: sciprint("A pointer\n"); break; default: sciprint("Unknown type !\n"); // Should never happen } return 0; }
参照
- sciprint — ユーザに標準メッセージを出力するCゲートウェイ関数 (C printf関数と同じプロファイル)
Report an issue | ||
<< Rhs (deprecated) | Scilab Gateway API | Scierror >> |