## Tcl8.6.17/Tk8.6.17 Documentation > Tcl C API > BoolObj

### 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_NewBooleanObj, Tcl_SetBooleanObj, Tcl_GetBooleanFromObj — store/retrieve boolean value in a Tcl_Obj
  SYNOPSIS
    #include <tcl.h>
    Tcl_Obj *
    Tcl_NewBooleanObj(intValue)
    Tcl_SetBooleanObj(objPtr, intValue)
    int
    Tcl_GetBooleanFromObj(interp, objPtr, intPtr)
  引数 ARGUMENTS
    int intValue (in)
    Tcl_Obj *objPtr (入/出力in/out)
    Tcl_Interp *interp (入/出力in/out)
    int *intPtr (出力out)
  DESCRIPTION
  SEE ALSO
  KEYWORDS

### NAME

Tcl_NewBooleanObj, Tcl_SetBooleanObj, Tcl_GetBooleanFromObj — store/retrieve boolean value in a Tcl_Obj

### SYNOPSIS

#include <tcl.h>
Tcl_Obj *
Tcl_NewBooleanObj(intValue)
Tcl_SetBooleanObj(objPtr, intValue)
int
Tcl_GetBooleanFromObj(interp, objPtr, intPtr)

### 引数 ARGUMENTS

int intValue (in)
  論理値として Tcl_Obj に保存される整数値　 Integer value to be stored as a boolean value in a Tcl_Obj.

Tcl_Obj *objPtr (入/出力in/out)
  そこから論理値を保存又は取戻すTcl_Obj を指す｡ 　 Points to the Tcl_Obj in which to store, or from which to retrieve a boolean value.

Tcl_Interp *interp (入/出力in/out)
  もし､論理値が取戻せない場合､ interp が NULL でない限り､解釈実行機能の結果の値に不都合伝号文が残る｡ 　　 If a boolean value cannot be retrieved, an error message is left in the interpreter's result value unless interp is NULL.

int *intPtr (出力out)
  objPtr から得た論理値(0 か 1)を保存する Tcl_GetBooleanFromObj の場所を指す｡ Points to place where Tcl_GetBooleanFromObj stores the boolean value (0 or 1) obtained from objPtr.

### DESCRIPTION

これ等の手続函数は論理値を Tcl_Obj として Tcl と遣り取りする為に使われる｡論理値を Tcl_Obj に保存する時､ intValue 内のどのような非零整数値も論理値 1 と看做され､整数値 0 は論理値 0 と看做される｡ 　　　 These procedures are used to pass boolean values to and from Tcl as Tcl_Obj's. When storing a boolean value into a Tcl_Obj, any non-zero integer value in intValue is taken to be the boolean value 1, and the integer value 0 is taken to be the boolean value 0.

Tcl_NewBooleanObj は新しい Tcl_Obj を作成し､論理値 intValue をその中に保存し､新しいTcl_Obj へのポインタを返す｡新しいTcl_Obj は零の参照回数を有する｡ Tcl_NewBooleanObj creates a new Tcl_Obj, stores the boolean value intValue in it, and returns a pointer to the new Tcl_Obj. The new Tcl_Obj has reference count of zero.

Tcl_SetBooleanObj は実在しているTcl_Obj へのポインタ objPtr を受取り､論理値 intValue をTcl_Objの *objPtr に保存する｡これは *objPtr 上への書込み操作であり objPtr は共有されてはならない｡共有された Tcl_Obj への書込みの試みは混乱を来す｡ intValue の *objPtr への成功裏の書込みは *objPtr に保存されたどのような以前の値をも解放しておくことを必要とする｡ Tcl_SetBooleanObj accepts objPtr, a pointer to an existing Tcl_Obj, and stores in the Tcl_Obj *objPtr the boolean value intValue. This is a write operation on *objPtr, so objPtr must be unshared. Attempts to write to a shared Tcl_Obj will panic. A successful write of intValue into *objPtr implies the freeing of any former value stored in *objPtr.

Tcl_GetBooleanFromObj は *objPtr に保存された値から論理値を取出すことを試みる｡もし objPtr が Tcl_GetBoolean によって認識される文字列値を保有している場合､認識された論理値は intPtr によって与えられる番地に書かれる｡もし､ objPtr がTcl によって数と認識される値を保有する場合､その値が零ならば､ intPtr によって与えられる番地に 0 が書かれ､その値が非零ならば､ intPtr によって与えられる番地に 1 が書かれる｡値が intPtr によって与えられる番地に書かれている全ての場合に､値は intPtr によって与えられる番地に記入され､Tcl_GetBooleanFromObj は TCL_OK を返す｡もし objPtr の値が上記のどの条件にも一致しない場合､ TCL_ERROR が返され､ interp が NULL.でない限り､不都合伝言文が解釈実行機能の結果内に残される｡Tcl_GetBooleanFromObj は *objPtr の内部領域に変化をさせることもあり､同じ objPtr 上への後々の Tcl_GetBooleanFromObj 呼出しがより効果的に遂行されることがある｡ Tcl_GetBooleanFromObj attempts to retrieve a boolean value from the value stored in *objPtr. If objPtr holds a string value recognized by Tcl_GetBoolean, then the recognized boolean value is written at the address given by intPtr. If objPtr holds any value recognized as a number by Tcl, then if that value is zero a 0 is written at the address given by intPtr and if that value is non-zero a 1 is written at the address given by intPtr. In all cases where a value is written at the address given by intPtr, Tcl_GetBooleanFromObj returns TCL_OK. If the value of objPtr does not meet any of the conditions above, then TCL_ERROR is returned and an error message is left in the interpreter's result unless interp is NULL. Tcl_GetBooleanFromObj may also make changes to the internal fields of *objPtr so that future calls to Tcl_GetBooleanFromObj on the same objPtr can be performed more efficiently.

註意すべきは Tcl_GetBooleanFromObj と Tcl_GetBoolean 処理譜は同一の機能ではない｡ Tcl_GetBooleanFromObj が TCL_OK を返す為の変数の設定は､ Tcl_GetBoolean が同じ事をする為に設定する値より厳密に大きい｡譬えば､値 “5” を Tcl_GetBooleanFromObj に渡すと TCL_OK を返す(そして論理値1)､その時その値を Tcl_GetBoolean に渡すと TCL_ERROR が戻る｡ 　　 Note that the routines Tcl_GetBooleanFromObj and Tcl_GetBoolean are not functional equivalents. The set of values for which Tcl_GetBooleanFromObj will return TCL_OK is strictly larger than the set of values for which Tcl_GetBoolean will do the same. For example, the value “5” passed to Tcl_GetBooleanFromObj will lead to a TCL_OK return (and the boolean value 1), while the same value passed to Tcl_GetBoolean will lead to a TCL_ERROR return.

### SEE ALSO

Tcl_NewObj, Tcl_IsShared, Tcl_GetBoolean

### KEYWORDS

boolean, value
Copyright © 1996-1997 Sun Microsystems, Inc.