Each variable has a set of value labels (see VALUE LABELS), represented as
struct val_labs. A
struct val_labs is essentially a map from
union values to strings.
All of the values in a set of value labels have the same width, which
for a set of value labels owned by a variable (the common case) is the
same as its variable.
Numeric and short string sets of value labels may contain any number of entries. Long string sets of value labels may not contain any value labels at all, due to a corresponding restriction in SPSS. In PSPP we could easily eliminate this restriction, but doing so would also require us to extend the system file format in an incompatible way, which we consider a bad tradeoff.
It is rarely necessary to interact directly with a
object. Instead, the most common operation, looking up the label for
a value of a given variable, can be conveniently executed through
struct variable. See Variable Value Labels, for
Function prototypes and other declarations related to missing values are declared in data/value-labels.h.
The most often useful function for value labels is
val_labs_find, for looking up the label associated with a
Looks in val_labs for a label for the given value. Returns the label, if one is found, or a null pointer otherwise.
Several other functions for working with value labels are described in the following section, but these are more rarely useful.