5.2. Data types
The SystemTap language includes a small number of data types, but no type declarations. A variable's type is inferred from its use. To support this inference, the translator enforces consistent typing of function arguments and return values, array indices and values. There are no implicit type conversions between strings and numbers. Inconsistent type-related use of identifiers signals an error.
5.2.1. Literals
Literals are either strings or integers. Literals can be expressed as decimal, octal, or hexadecimal, using C notation. Type suffixes (e.g., L or U) are not used.
5.2.2. Integers
Integers are decimal, hexadecimal, or octal, and use the same notation as in C. Integers are 64-bit signed quantities, although the parser also accepts (and wraps around) values above positive
263
but below 264
.
5.2.3. Strings
Strings are enclosed in quotation marks (“string”), and pass through standard C escape codes with backslashes. Strings are limited in length to MAXSTRINGLEN. For more information about this and other limits, see Section Section 1.6, “Safety and security”.
5.2.4. Associative arrays
See Section Chapter 7, Associative arrays
5.2.5. Statistics
See Section Chapter 8, Statistics (aggregates)