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

### 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_UpVar, Tcl_UpVar2 — 一つの変数から他のものへの連結　　　link one variable to another
  SYNOPSIS
    #include <tcl.h>
    int
    Tcl_UpVar(interp, frameName, sourceName, destName, flags)
    int
    Tcl_UpVar2(interp, frameName, name1, name2, destName, flags)
  引数 ARGUMENTS
    Tcl_Interp *interp (入力in)
    const char *frameName (入力in)
    const char *sourceName (入力in)
    const char *destName (入力in)
    int flags (入力in)
    const char *name1 (入力in)
    const char *name2 (入力in)
  説明 DESCRIPTION
  KEYWORDS

### NAME

Tcl_UpVar, Tcl_UpVar2 — 一つの変数から他のものへの連結　　　link one variable to another

### SYNOPSIS

#include <tcl.h>
int
Tcl_UpVar(interp, frameName, sourceName, destName, flags)
int
Tcl_UpVar2(interp, frameName, name1, name2, destName, flags)

### 引数 ARGUMENTS

Tcl_Interp *interp (入力in)
  変数を含む解釈実行機能であり; 不都合報告の為に使い得る｡ Interpreter containing variables; also used for error reporting.

const char *frameName (入力in)
  幾つかの源変数を含む棚枠を識別する｡upvar 命令によって受容れられる､どのような形式でもよい､譬えば､ #0 や 1 ｡　 Identifies the stack frame containing source variable. May have any of the forms accepted by the upvar command, such as #0 or 1.

const char *sourceName (入力in)
  frameName により与えられた枠内での源変数の名前｡スカラー変数か括弧で括られた索引を伴う配列変数でも好い｡　 Name of source variable, in the frame given by frameName. May refer to a scalar variable or to an array variable with a parenthesized index.

const char *destName (入力in)
  到着先の変数の名前､それは源変数と連結されていて､ destName への参照は片方の変数を参照する｡upvarされた変数を除いて現在実在してはならない｡　 Name of destination variable, which is to be linked to source variable so that references to destName refer to the other variable. Must not currently exist except as an upvar-ed variable.

int flags (入力in)
  TCL_GLOBAL_ONLY か TCL_NAMESPACE_ONLY か 0 の内の一つ; もし非零の場合､ destName は大域又は名前空間変数である; 零の場合､現時の手続函数に属している(又は､手続函数が活動していない場合は､現在の名前空間に､)｡　 One of TCL_GLOBAL_ONLY, TCL_NAMESPACE_ONLY or 0; if non-zero, then destName is a global or namespace variable; otherwise it is local to the current procedure (or current namespace if no procedure is active).

const char *name1 (入力in)
  源変数の最初の部分の名前(スカラー名､又は配列索引なしの配列名)｡　 First part of source variable's name (scalar name, or name of array without array index).

const char *name2 (入力in)
  もし源変数が配列の要素の場合､要素の索引を与える｡スカラーの源変数では NULL である｡　 If source variable is an element of an array, gives the index of the element. For scalar source variables, is NULL.

### 説明 DESCRIPTION

Tcl_UpVar と Tcl_UpVar2 は upvar 命令と同じ機能をもたらす: それらは源変数から仕向け先変数に連結を作成し､仕向け先への参照は源へ透明に通り抜けて行く｡源変数の名前は xyx や a(24) ( Tcl_UpVarに呼ばれる)の様な単純文字列､又は要素名と分離された配列名として二つの部分に分かれた名前( Tcl_UpVar2 に呼ばれる)として指定される｡仕向け先変数の名前は単純文字列として指定される; それは配列要素であってはならない｡ Tcl_UpVar and Tcl_UpVar2 provide the same functionality as the upvar command: they make a link from a source variable to a destination variable, so that references to the destination are passed transparently through to the source. The name of the source variable may be specified either as a single string such as xyx or a(24) (by calling Tcl_UpVar) or in two parts where the array name has been separated from the element name (by calling Tcl_UpVar2). The destination variable name is specified in a single string; it may not be an array element.

手続函数の返りは TCL_OK か TCL_ERROR のどちらかであり､もし不都合が生じると解釈実行機能内の不都合伝言文を置く｡ Both procedures return either TCL_OK or TCL_ERROR, and they leave an error message in the interpreter's result if an error occurs.

upvar 命令の様に源変数は実在する必要はない; もし実在しない場合､後々それを消去した時に連結が破壊されない｡仕向け先変数は呼出し時に実在してもよいが､その場合連結した変数として実在しなければならない｡ As with the upvar command, the source variable need not exist; if it does exist, unsetting it later does not destroy the link. The destination variable may exist at the time of the call, but if so it must exist as a linked variable.

### KEYWORDS

linked variable, upvar, variable
Copyright © 1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.