C Constants (Debugging with GDB)

From Get docs
Gdb/docs/latest/gdb/C-Constants

Next: C Plus Plus Expressions, Previous: C Operators, Up: C   [Contents][Index]



15.4.1.2 C and C++ Constants

GDB allows you to express the constants of C and C++ in the following ways:

  • Integer constants are a sequence of digits. Octal constants are specified by a leading ‘0’ (i.e. zero), and hexadecimal constants by a leading ‘0x’ or ‘0X’. Constants may also end with a letter ‘l’, specifying that the constant should be treated as a long value.
  • Floating point constants are a sequence of digits, followed by a decimal point, followed by a sequence of digits, and optionally followed by an exponent. An exponent is of the form: ‘e[[+]|-]nnn’, where nnn is another sequence of digits. The ‘+’ is optional for positive exponents. A floating-point constant may also end with a letter ‘f’ or ‘F’, specifying that the constant should be treated as being of the float (as opposed to the default double) type; or with a letter ‘l’ or ‘L’, which specifies a long double constant.
  • Enumerated constants consist of enumerated identifiers, or their integral equivalents.
  • Character constants are a single character surrounded by single quotes ('), or a number—the ordinal value of the corresponding character (usually its ASCII value). Within quotes, the single character may be represented by a letter or by escape sequences, which are of the form ‘\nnn’, where nnn is the octal representation of the character’s ordinal value; or of the form ‘\x’, where ‘x’ is a predefined special character—for example, ‘\n’ for newline. Wide character constants can be written by prefixing a character constant with ‘L’, as in C. For example, ‘L'x'’ is the wide form of ‘x’. The target wide character set is used when computing the value of this constant (see Character Sets).
  • String constants are a sequence of character constants surrounded by double quotes ("). Any valid character constant (as described above) may appear. Double quotes within the string must be preceded by a backslash, so for instance ‘"a\"b'c"’ is a string of five characters. Wide string constants can be written by prefixing a string constant with ‘L’, as in C. The target wide character set is used when computing the value of this constant (see Character Sets).
  • Pointer constants are an integral value. You can also write pointers to constants using the C operator ‘&’.
  • Array constants are comma-separated lists surrounded by braces ‘{’ and ‘}’; for example, ‘{1,2,3}’ is a three-element array of integers, ‘{{1,2}, {3,4}, {5,6}}’ is a three-by-two array, and ‘{&"hi", &"there", &"fred"}’ is a three-element array of pointers.



Next: C Plus Plus Expressions, Previous: C Operators, Up: C   [Contents][Index]