blob: 62acba817ab858b7a160b1a89f2fa25fe8fd89ca [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2015 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Free Software" and "Free Software Needs
Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
and with the Back-Cover Texts as in (a) below.
(a) The FSF's Back-Cover Text is: "You are free to copy and modify
this GNU Manual. Buying copies from GNU Press supports the FSF in
developing GNU and promoting software freedom." -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Debugging with GDB: C Constants</title>
<meta name="description" content="Debugging with GDB: C Constants">
<meta name="keywords" content="Debugging with GDB: C Constants">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="C.html#C" rel="up" title="C">
<link href="C-Plus-Plus-Expressions.html#C-Plus-Plus-Expressions" rel="next" title="C Plus Plus Expressions">
<link href="C-Operators.html#C-Operators" rel="prev" title="C Operators">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="C-Constants"></a>
<div class="header">
<p>
Next: <a href="C-Plus-Plus-Expressions.html#C-Plus-Plus-Expressions" accesskey="n" rel="next">C Plus Plus Expressions</a>, Previous: <a href="C-Operators.html#C-Operators" accesskey="p" rel="prev">C Operators</a>, Up: <a href="C.html#C" accesskey="u" rel="up">C</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="C-and-C_002b_002b-Constants"></a>
<h4 class="subsubsection">15.4.1.2 C and C<tt>++</tt> Constants</h4>
<a name="index-C-and-C_002b_002b-constants"></a>
<p><small>GDB</small> allows you to express the constants of C and C<tt>++</tt> in the
following ways:
</p>
<ul>
<li> Integer constants are a sequence of digits. Octal constants are
specified by a leading &lsquo;<samp>0</samp>&rsquo; (i.e. zero), and hexadecimal constants
by a leading &lsquo;<samp>0x</samp>&rsquo; or &lsquo;<samp>0X</samp>&rsquo;. Constants may also end with a letter
&lsquo;<samp>l</samp>&rsquo;, specifying that the constant should be treated as a
<code>long</code> value.
</li><li> 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:
&lsquo;<samp>e<span class="roman">[[</span>+<span class="roman">]|</span><span class="nolinebreak">-</span><span class="roman">]</span><var>nnn</var><!-- /@w --></samp>&rsquo;, where <var>nnn</var> is another
sequence of digits. The &lsquo;<samp>+</samp>&rsquo; is optional for positive exponents.
A floating-point constant may also end with a letter &lsquo;<samp>f</samp>&rsquo; or
&lsquo;<samp>F</samp>&rsquo;, specifying that the constant should be treated as being of
the <code>float</code> (as opposed to the default <code>double</code>) type; or with
a letter &lsquo;<samp>l</samp>&rsquo; or &lsquo;<samp>L</samp>&rsquo;, which specifies a <code>long double</code>
constant.
</li><li> Enumerated constants consist of enumerated identifiers, or their
integral equivalents.
</li><li> Character constants are a single character surrounded by single quotes
(<code>'</code>), or a number&mdash;the ordinal value of the corresponding character
(usually its <small>ASCII</small> value). Within quotes, the single character may
be represented by a letter or by <em>escape sequences</em>, which are of
the form &lsquo;<samp>\<var>nnn</var></samp>&rsquo;, where <var>nnn</var> is the octal representation
of the character&rsquo;s ordinal value; or of the form &lsquo;<samp>\<var>x</var></samp>&rsquo;, where
&lsquo;<samp><var>x</var></samp>&rsquo; is a predefined special character&mdash;for example,
&lsquo;<samp>\n</samp>&rsquo; for newline.
<p>Wide character constants can be written by prefixing a character
constant with &lsquo;<samp>L</samp>&rsquo;, as in C. For example, &lsquo;<samp>L'x'</samp>&rsquo; is the wide
form of &lsquo;<samp>x</samp>&rsquo;. The target wide character set is used when
computing the value of this constant (see <a href="Character-Sets.html#Character-Sets">Character Sets</a>).
</p>
</li><li> String constants are a sequence of character constants surrounded by
double quotes (<code>&quot;</code>). Any valid character constant (as described
above) may appear. Double quotes within the string must be preceded by
a backslash, so for instance &lsquo;<samp>&quot;a\&quot;b'c&quot;</samp>&rsquo; is a string of five
characters.
<p>Wide string constants can be written by prefixing a string constant
with &lsquo;<samp>L</samp>&rsquo;, as in C. The target wide character set is used when
computing the value of this constant (see <a href="Character-Sets.html#Character-Sets">Character Sets</a>).
</p>
</li><li> Pointer constants are an integral value. You can also write pointers
to constants using the C operator &lsquo;<samp>&amp;</samp>&rsquo;.
</li><li> Array constants are comma-separated lists surrounded by braces &lsquo;<samp>{</samp>&rsquo;
and &lsquo;<samp>}</samp>&rsquo;; for example, &lsquo;<samp>{1,2,3}</samp>&rsquo; is a three-element array of
integers, &lsquo;<samp>{{1,2}, {3,4}, {5,6}}</samp>&rsquo; is a three-by-two array,
and &lsquo;<samp>{&amp;&quot;hi&quot;, &amp;&quot;there&quot;, &amp;&quot;fred&quot;}</samp>&rsquo; is a three-element array of pointers.
</li></ul>
<hr>
<div class="header">
<p>
Next: <a href="C-Plus-Plus-Expressions.html#C-Plus-Plus-Expressions" accesskey="n" rel="next">C Plus Plus Expressions</a>, Previous: <a href="C-Operators.html#C-Operators" accesskey="p" rel="prev">C Operators</a>, Up: <a href="C.html#C" accesskey="u" rel="up">C</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>