## Tcl9.0.3/Tk9.0.3 Documentation > Tcl C API > ExprLongObj

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tcl_ExprLongObj, Tcl_ExprDoubleObj, Tcl_ExprBooleanObj, Tcl_ExprObj — 式を評価する evaluate an expression
  SYNOPSIS
    #include <tcl.h>
    int
    Tcl_ExprLongObj(interp, objPtr, longPtr)
    int
    Tcl_ExprDoubleObj(interp, objPtr, doublePtr)
    int
    Tcl_ExprBooleanObj(interp, objPtr, booleanPtr)
    int
    Tcl_ExprObj(interp, objPtr, resultPtrPtr)
  引数 ARGUMENTS
    Tcl_Interp *interp (入力in)
    Tcl_Obj *objPtr (入力in)
    long *longPtr (出力out)
    int *doublePtr (出力out)
    int *booleanPtr (出力out)
    Tcl_Obj **resultPtrPtr (出力out)
  DESCRIPTION
  参照回数管理 REFERENCE COUNT MANAGEMENT
  SEE ALSO
  KEYWORDS

### NAME

Tcl_ExprLongObj, Tcl_ExprDoubleObj, Tcl_ExprBooleanObj, Tcl_ExprObj — 式を評価する evaluate an expression

### SYNOPSIS

#include <tcl.h>
int
Tcl_ExprLongObj(interp, objPtr, longPtr)
int
Tcl_ExprDoubleObj(interp, objPtr, doublePtr)
int
Tcl_ExprBooleanObj(interp, objPtr, booleanPtr)
int
Tcl_ExprObj(interp, objPtr, resultPtrPtr)

### 引数 ARGUMENTS

Tcl_Interp *interp (入力in)
  その文脈内で objPtr を評価する解釈実行機能｡ 　 Interpreter in whose context to evaluate objPtr.

Tcl_Obj *objPtr (入力in)
  評価する為の敷きを含む値への指示子｡ 　 Pointer to a value containing the expression to evaluate.

long *longPtr (出力out)
  式の整数値を保存する位置への指示子｡ 　 Pointer to location in which to store the integer value of the expression.

int *doublePtr (出力out)
  式の浮動少数値を保存する位置への指示子｡ 　 Pointer to location in which to store the floating-point value of the expression.

int *booleanPtr (出力out)
  式の 0/1 論理値を保存する位置への指示子｡ 　 Pointer to location in which to store the 0/1 boolean value of the expression.

Tcl_Obj **resultPtrPtr (出力out)
  式の結果の値への指示子を保存する位置への指示子｡ 　 Pointer to location in which to store a pointer to the value that is the result of the expression.

### DESCRIPTION

これら四つの手続函数は全て式を評価し､四つの異なる形式の内の一つで結果を返す｡ 式は objPtr 引数によって与えられ､expr 命令が受け入れるどのような式でも好い｡ These four procedures all evaluate an expression, returning the result in one of four different forms. The expression is given by the objPtr argument, and it can have any of the forms accepted by the expr command.

interp 引数は式の評価(譬えば､変数や入子になった Tcl 命令)に使用する解釈実行機能を参照し､不都合情報を返す｡ The interp argument refers to an interpreter used to evaluate the expression (e.g. for variables and nested Tcl commands) and to return error information.

これら全ての手続函数に関して､返り値は標準的 Tcl の結果である : TCL_OK は 式は成功裡に評価されたことを意味し､ TCL_ERROR は､式の評価中に不都合が生じたことを意味する｡ もし TCL_ERROR が返されたら､Tcl_GetObjResult を使用して不都合を記述する伝言文を取り出すことができる｡ 式に埋め込まれた Tcl 命令を実行中に不都合が起った場合は､その不都合が返される｡ 　　　 For all of these procedures the return value is a standard Tcl result: TCL_OK means the expression was successfully evaluated, and TCL_ERROR means that an error occurred while evaluating the expression. If TCL_ERROR is returned, then a message describing the error can be retrieved using Tcl_GetObjResult. If an error occurs while executing a Tcl command embedded in the expression then that error will be returned.

もし式が成功裡に評価されると､その値は､どの手続函数が起動されたかによって四つの内の一つの形式で返される｡ Tcl_ExprLongObj は *longPtr の位置の整数値を保存する｡もし式の実際の値が浮動少数の場合､それは整数に切詰められる｡ もし式の実際の値が非数の文字列の場合不都合が返される｡ 　　　 If the expression is successfully evaluated, then its value is returned in one of four forms, depending on which procedure is invoked. Tcl_ExprLongObj stores an integer value at *longPtr. If the expression's actual value is a floating-point number, then it is truncated to an integer. If the expression's actual value is a non-numeric string then an error is returned.

Tcl_ExprDoubleObj は *doublePtr の位置に浮動少数値を保存する｡ もし式の実際の値が整数の場合､それは浮動少数に変化される｡ もし式の実際の値が非数の文字列の場合不都合が返される｡ Tcl_ExprDoubleObj stores a floating-point value at *doublePtr. If the expression's actual value is an integer, it is converted to floating-point. If the expression's actual value is a non-numeric string then an error is returned.

Tcl_ExprBooleanObj は *booleanPtr の位置に0/1 整数値を保存する｡ もし式の実際の値が整数又は､浮動少数の場合､値が零の場合は､ *booleanPtr に 0 が､それ以外の場合は 1 が保存される｡ もし式の実際の値が非数の文字列の場合､ “yes” か “no” の如く､Tcl_GetBoolean に受入れられる形式の内の一つでなければならない､さもないと不都合が生じる｡ Tcl_ExprBooleanObj stores a 0/1 integer value at *booleanPtr. If the expression's actual value is an integer or floating-point number, then they store 0 at *booleanPtr if the value was zero and 1 otherwise. If the expression's actual value is a non-numeric string then it must be one of the values accepted by Tcl_GetBoolean such as “yes” or “no”, or else an error occurs.

もし Tcl_ExprObj が成功裡に式を評価すると､それは *resultPtrPtr に於ける式の値を含む Tcl 値への指示子が保存される｡この場合､その値が用済みの時に Tcl_DecrRefCount を呼出して参照勘定を減じておくのは呼出し元の責務である｡ 　　 If Tcl_ExprObj successfully evaluates the expression, it stores a pointer to the Tcl value containing the expression's value at *resultPtrPtr. In this case, the caller is responsible for calling Tcl_DecrRefCount to decrement the value's reference count when it is finished with the value.

### 参照回数管理 REFERENCE COUNT MANAGEMENT

Tcl_ExprLongObjとTcl_ExprDoubleObjとTcl_ExprBooleanObjとTcl_ExprObj は､全て､そのobjPtr引数の参照回数を増加し減少する; 参照回数零を伴う如何なる値もそれに渡してはならない｡それらは又､解釈実行機能の結果を操作する; これらの呼出しに関するどの様な値の参照回数を保持する為にも､解釈実行機能の結果を頼ってはならない｡ Tcl_ExprLongObj, Tcl_ExprDoubleObj, Tcl_ExprBooleanObj, and Tcl_ExprObj all increment and decrement the reference count of their objPtr arguments; you must not pass them any value with a reference count of zero. They also manipulate the interpreter result; you must not count on the interpreter result to hold the reference count of any value over these calls.

### SEE ALSO

Tcl_ExprLong, Tcl_ExprDouble, Tcl_ExprBoolean, Tcl_ExprString, Tcl_GetObjResult

### KEYWORDS

boolean, double, evaluate, expression, integer, value, string
Copyright © 1996-1997 Sun Microsystems, Inc.