source: public/doc/gnu-c/Wide-String-Constants.html@ 02598c2

Last change on this file since 02598c2 was 02598c2, checked in by Mikhail Kirillov <w96k@…>, on Oct 6, 2022 at 12:36:29 PM

Add gnu-c

  • Property mode set to 100644
File size: 6.0 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- Copyright (C) 2022 Richard Stallman and Free Software Foundation, Inc.
4
5(The work of Trevis Rothwell and Nelson Beebe has been assigned or
6licensed to the FSF.)
7
8Permission is granted to copy, distribute and/or modify this document
9under the terms of the GNU Free Documentation License, Version 1.3 or
10any later version published by the Free Software Foundation; with the
11Invariant Sections being "GNU General Public License," with the
12Front-Cover Texts being "A GNU Manual," and with the Back-Cover
13Texts as in (a) below. A copy of the license is included in the
14section entitled "GNU Free Documentation License."
15
16(a) The FSF's Back-Cover Text is: "You have the freedom to copy and
17modify this GNU manual. Buying copies from the FSF supports it in
18developing GNU and promoting software freedom." -->
19<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
20<head>
21<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
22<title>Wide String Constants (GNU C Language Manual)</title>
23
24<meta name="description" content="Wide String Constants (GNU C Language Manual)">
25<meta name="keywords" content="Wide String Constants (GNU C Language Manual)">
26<meta name="resource-type" content="document">
27<meta name="distribution" content="global">
28<meta name="Generator" content="makeinfo">
29<link href="index.html" rel="start" title="Top">
30<link href="Symbol-Index.html" rel="index" title="Symbol Index">
31<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
32<link href="Constants.html" rel="up" title="Constants">
33<link href="Type-Size.html" rel="next" title="Type Size">
34<link href="Wide-Character-Constants.html" rel="prev" title="Wide Character Constants">
35<style type="text/css">
36<!--
37a.summary-letter {text-decoration: none}
38blockquote.indentedblock {margin-right: 0em}
39div.display {margin-left: 3.2em}
40div.example {margin-left: 3.2em}
41div.lisp {margin-left: 3.2em}
42kbd {font-style: oblique}
43pre.display {font-family: inherit}
44pre.format {font-family: inherit}
45pre.menu-comment {font-family: serif}
46pre.menu-preformatted {font-family: serif}
47span.nolinebreak {white-space: nowrap}
48span.roman {font-family: initial; font-weight: normal}
49span.sansserif {font-family: sans-serif; font-weight: normal}
50ul.no-bullet {list-style: none}
51-->
52</style>
53
54
55</head>
56
57<body lang="en">
58<span id="Wide-String-Constants"></span><div class="header">
59<p>
60Previous: <a href="Wide-Character-Constants.html" accesskey="p" rel="prev">Wide Character Constants</a>, Up: <a href="Constants.html" accesskey="u" rel="up">Constants</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Symbol-Index.html" title="Index" rel="index">Index</a>]</p>
61</div>
62<hr>
63<span id="Wide-String-Constants-1"></span><h3 class="section">12.11 Wide String Constants</h3>
64<span id="index-wide-string-constants"></span>
65<span id="index-constants_002c-wide-string"></span>
66
67<p>A <em>wide string constant</em> stands for an array of 16-bit or 32-bit
68characters. They are rarely used; if you&rsquo;re just
69learning C, you may as well skip this section.
70</p>
71<p>There are three kinds of wide string constants, which differ in the
72data type used for each character in the string. Each wide string
73constant is equivalent to an array of integers, but the data type of
74those integers depends on the kind of wide string. Using the constant
75in an expression will convert the array to a pointer to its first
76element, as usual for arrays in C (see <a href="Accessing-Array-Elements.html">Accessing Array Elements</a>).
77For each kind of wide string constant, we state here what type that
78pointer will be.
79</p>
80<dl compact="compact">
81<dt><code>char16_t</code></dt>
82<dd><p>This is a 16-bit Unicode wide string constant: each element is a
8316-bit Unicode character code with type <code>char16_t</code>, so the string
84has the pointer type <code>char16_t&nbsp;*</code>. (That is a type designator;
85see <a href="Pointer-Type-Designators.html">Pointer Type Designators</a>.) The constant is written as
86&lsquo;<samp>u</samp>&rsquo; (which must be lower case) followed (with no intervening
87space) by a string constant with the usual syntax.
88</p>
89</dd>
90<dt><code>char32_t</code></dt>
91<dd><p>This is a 32-bit Unicode wide string constant: each element is a
9232-bit Unicode character code, and the string has type <code>char32_t&nbsp;*</code>.
93It&rsquo;s written as &lsquo;<samp>U</samp>&rsquo; (which must be upper case) followed (with no
94intervening space) by a string constant with the usual syntax.
95</p>
96</dd>
97<dt><code>wchar_t</code></dt>
98<dd><p>This is the original kind of wide string constant. It&rsquo;s written as
99&lsquo;<samp>L</samp>&rsquo; (which must be upper case) followed (with no intervening
100space) by a string constant with the usual syntax, and the string has
101type <code>wchar_t&nbsp;*</code>.
102</p>
103<p>The width of the data type <code>wchar_t</code> depends on the target
104platform, which makes this kind of wide string somewhat less useful
105than the newer kinds.
106</p></dd>
107</dl>
108
109<p><code>char16_t</code> and <code>char32_t</code> are declared in the header file
110<samp>uchar.h</samp>. <code>wchar_t</code> is declared in <samp>stddef.h</samp>.
111</p>
112<p>Consecutive wide string constants of the same kind concatenate, just
113like ordinary string constants. A wide string constant concatenated
114with an ordinary string constant results in a wide string constant.
115You can&rsquo;t concatenate two wide string constants of different kinds.
116You also can&rsquo;t concatenate a wide string constant (of any kind) with a
117UTF-8 string constant.
118</p>
119<hr>
120<div class="header">
121<p>
122Previous: <a href="Wide-Character-Constants.html" accesskey="p" rel="prev">Wide Character Constants</a>, Up: <a href="Constants.html" accesskey="u" rel="up">Constants</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Symbol-Index.html" title="Index" rel="index">Index</a>]</p>
123</div>
124
125
126
127</body>
128</html>
Note: See TracBrowser for help on using the repository browser.