A.1.7 访问Oct文件中的全局变量

全局变量允许访问全局作用域中的变量。在oct文件中,可以通过使用当前解释器符号表中的支持函数 global_varval 和 global_assign 来访问全局变量。这两个函数都将一个字符串作为第一个参数,该字符串表示要获取或赋值的变量名。global_assign 的第二个参数是要赋的值。这两个函数的使用示例如下:

#include <octave/oct.h>
#include <octave/interpreter.h>

DEFMETHOD_DLD (globaldemo, interp, args, , "Global Demo")
{
  if (args.length () != 1)
    print_usage ();

  octave_value retval;

  std::string s = args(0).string_value ();

  octave::symbol_table& symtab = interp.get_symbol_table ();

  octave_value tmp = symtab.global_varval (s);

  if (tmp.is_defined ())
    retval = tmp;
  else
    retval = "Global variable not found";

  symtab.global_assign ("a", 42.0);

  return retval;
}

其使用示例如下:

global a b
b = 10;
globaldemo ("b")
⇒  10
globaldemo ("c")
⇒  "Global variable not found"
num2str (a)
⇒  42

版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2