Constants
Constants in the C language include:
The first three types, integral constants, floating point constants,
and character constants, are explained in this subsection.
Enumeration constants are explained in
``Enumerations''.
Integral constants
Integral constants may be:
Floating point constants
- 
Consist of integer part, decimal point, fraction part,
an e or E, an optionally signed integer exponent,
and a type suffix, one of f, F, l, or L.
Each of these elements is optional;
however one of the following must be present
for the constant to be a floating point constant:
 
- 
A decimal point (preceded or followed by a number).
 
- 
An e with an exponent.
 
- 
Any combination of the above.
Examples:
   xxx  e exp
   xxx.
   .xxx
 
 Type determined by suffix;
f or F indicates float,
l or L indicateslong double,
otherwise type is double.
Character constants
- 
One or more characters enclosed in single quotes, as in `x'.
 
- 
All character constants have type int.
 
- 
The value of a character constant is the numeric value of the
character in the ASCII character set.
 
- 
A multiple-character constant that is not an escape sequence (see below)
has a value derived from the numeric values of each character.
For example, the constant `123' has a value of
or 0x313233.
 
- 
Character constants may not contain the character 'or new-line.
To represent these characters, and some others that
may not be contained in the source character set,
the compiler provides the following escape sequences:
Escape sequences
| new-line | NL (LF) | \n | audible alert | BEL | \a | 
| horizontal tab | HT | \t | question mark | ? | \? | 
| vertical tab | VT | \v | double quote | " | \" | 
| backspace | BS | \b | octal escape | ooo | \ooo | 
| carriage return | CR | \r | hexadecimal escape | hh | \xhh | 
| formfeed | FF | \f | backslash | \ | \\ | 
| single quote | ' | \' |  |  |  | 
If the character following a backslash is not one
of those specified, the compiler issues a warning
and treat the backslash-character sequence as the character itself.
Thus, '\\q' is treated as 'q'.
However, if you represent a character this way,
you run the risk that the character
may be made into an escape sequence in the future,
with unpredictable results.
An explicit new-line character is invalid in a character constant
and causes an error message.
- 
The octal escape consists of one to three octal digits.
 
- 
The hexadecimal escape consists of one or more hexadecimal digits
Wide characters and multibyte characters
- 
A wide character constant is a character constant
prefixed by the letter L.
 
- 
A wide character has an external encoding as a
multibyte character and an internal representation
as the integral type wchar_t, defined in stddef.h.
 
- 
A wide character constant has the integral value for
the multibyte character between single quote characters,
as defined by the locale-dependent mapping function mbtowc.
Next topic: 
String literals
Previous topic: 
Keywords
© 2003 Caldera International, Inc.  All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003