S-Lang Run-Time Library Reference: Version 1.4.0: Functions that Manipulate Structures

Next Previous Contents

## 4. Functions that Manipulate Structures

## 4.1 _push_struct_field_values

Synopsis

  Push the values of a structure's fields onto the stack

Usage

  `Integer_Type num = _push_struct_field_values (Struct_Type s)`

Description

  The `_push_struct_field_values` function pushes the values of all the fields of a structure onto the stack, returning the number of items pushed. The fields are pushed such that the last field of the structure is pushed first.

See Also

  `get_struct_field_names, get_struct_field`

## 4.2 get_struct_field

Synopsis

  Get the value associated with a structure field

Usage

  `x = get_struct_field (Struct_Type s, String field_name)`

Description

  The `get_struct_field` function gets the value of the field whose name is specified by `field_name` of the structure `s`.

Example

  The following example illustrates how this function may be used to to print the value of a structure.

  > `

  >           define print_struct (s)
  >           {
  >              variable name;

  >              foreach (get_struct_field_names (s))
  >                {
  >                  name = ();
  >                  value = get_struct_field (s, name);
  >                  vmessage ("s.%s = %s\n", name, string(value));
  >                }
  >           }

  > `

See Also

  `set_struct_field, get_struct_field_names, array_info`

## 4.3 get_struct_field_names

Synopsis

  Retrieve the field names associated with a structure

Usage

  `String_Type[] = get_struct_field_names (Struct_Type s)`

Description

  The `get_struct_field_names` function returns an array of strings whose elements specify the names of the fields of the struct `s`.

Example

  The following example illustrates how the `get_struct_field_names` function may be used to print the value of a structure.

  > `

  >           define print_struct (s)
  >           {
  >              variable name, value;

  >              foreach (get_struct_field_names (s))
  >                {
  >                  name = ();
  >                  value = get_struct_field (s, name);
  >                  vmessage ("s.%s = %s\n", name, string (value));
  >                }
  >           }

  > `

See Also

  `_push_struct_field_values, get_struct_field`

## 4.4 is_struct_type

Synopsis

  Determine whether or not an object is a structure

Usage

  `Integer_Type is_struct_type (X)`

Description

  The `is_struct_type` function returns `1` if the the parameter refers to a structure or a user-defined type. If the object is neither, `0` will be returned.

See Also

  `typeof, _typeof`

## 4.5 set_struct_field

Synopsis

  Set the value associated with a structure field

Usage

  `set_struct_field (s, field_name, field_value)`

  > `

  >        Struct_Type s;
  >        String_Type field_name;
  >        Generic_Type field_value;

  > `

Description

  The `set_struct_field` function sets the value of the field whose name is specified by `field_name` of the structure `s` to `field_value`.

See Also

  `get_struct_field, get_struct_field_names, set_struct_fields, array_info`

## 4.6 set_struct_fields

Synopsis

  Set the fields of a structure

Usage

  `set_struct_fields (Struct_Type s, ...)`

Description

  The `set_struct_fields` function may be used to set zero or more fields of a structure. The fields are set in the order in which they were created when the structure was defined.

Example

  > `

  >         variable s = struct { name, age, height };
  >         set_struct_fields (s, "Bill", 13, 64);

  > `

See Also

  `set_struct_field, get_struct_field_names`

Next Previous Contents