Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.0.0 - 日本語


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 >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Mar 07 09:29:08 CET 2023