Characters-implementation.html 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2017 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <title>Using the GNU Compiler Collection (GCC): Characters implementation</title>
  20. <meta name="description" content="Using the GNU Compiler Collection (GCC): Characters implementation">
  21. <meta name="keywords" content="Using the GNU Compiler Collection (GCC): Characters implementation">
  22. <meta name="resource-type" content="document">
  23. <meta name="distribution" content="global">
  24. <meta name="Generator" content="makeinfo">
  25. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="C-Implementation.html#C-Implementation" rel="up" title="C Implementation">
  30. <link href="Integers-implementation.html#Integers-implementation" rel="next" title="Integers implementation">
  31. <link href="Identifiers-implementation.html#Identifiers-implementation" rel="prev" title="Identifiers implementation">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.smallquotation {font-size: smaller}
  36. div.display {margin-left: 3.2em}
  37. div.example {margin-left: 3.2em}
  38. div.indentedblock {margin-left: 3.2em}
  39. div.lisp {margin-left: 3.2em}
  40. div.smalldisplay {margin-left: 3.2em}
  41. div.smallexample {margin-left: 3.2em}
  42. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style:oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nocodebreak {white-space:nowrap}
  54. span.nolinebreak {white-space:nowrap}
  55. span.roman {font-family:serif; font-weight:normal}
  56. span.sansserif {font-family:sans-serif; font-weight:normal}
  57. ul.no-bullet {list-style: none}
  58. -->
  59. </style>
  60. </head>
  61. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  62. <a name="Characters-implementation"></a>
  63. <div class="header">
  64. <p>
  65. Next: <a href="Integers-implementation.html#Integers-implementation" accesskey="n" rel="next">Integers implementation</a>, Previous: <a href="Identifiers-implementation.html#Identifiers-implementation" accesskey="p" rel="prev">Identifiers implementation</a>, Up: <a href="C-Implementation.html#C-Implementation" accesskey="u" rel="up">C Implementation</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  66. </div>
  67. <hr>
  68. <a name="Characters"></a>
  69. <h3 class="section">4.4 Characters</h3>
  70. <ul>
  71. <li> <cite>The number of bits in a byte (C90 3.4, C99 and C11 3.6).</cite>
  72. <p>Determined by ABI.
  73. </p>
  74. </li><li> <cite>The values of the members of the execution character set (C90,
  75. C99 and C11 5.2.1).</cite>
  76. <p>Determined by ABI.
  77. </p>
  78. </li><li> <cite>The unique value of the member of the execution character set produced
  79. for each of the standard alphabetic escape sequences (C90, C99 and C11
  80. 5.2.2).</cite>
  81. <p>Determined by ABI.
  82. </p>
  83. </li><li> <cite>The value of a <code>char</code> object into which has been stored any
  84. character other than a member of the basic execution character set
  85. (C90 6.1.2.5, C99 and C11 6.2.5).</cite>
  86. <p>Determined by ABI.
  87. </p>
  88. </li><li> <cite>Which of <code>signed char</code> or <code>unsigned char</code> has the same
  89. range, representation, and behavior as &ldquo;plain&rdquo; <code>char</code> (C90
  90. 6.1.2.5, C90 6.2.1.1, C99 and C11 6.2.5, C99 and C11 6.3.1.1).</cite>
  91. <a name="index-fsigned_002dchar-1"></a>
  92. <a name="index-funsigned_002dchar-1"></a>
  93. <p>Determined by ABI. The options <samp>-funsigned-char</samp> and
  94. <samp>-fsigned-char</samp> change the default. See <a href="C-Dialect-Options.html#C-Dialect-Options">Options Controlling C Dialect</a>.
  95. </p>
  96. </li><li> <cite>The mapping of members of the source character set (in character
  97. constants and string literals) to members of the execution character
  98. set (C90 6.1.3.4, C99 and C11 6.4.4.4, C90, C99 and C11 5.1.1.2).</cite>
  99. <p>Determined by ABI.
  100. </p>
  101. </li><li> <cite>The value of an integer character constant containing more than one
  102. character or containing a character or escape sequence that does not map
  103. to a single-byte execution character (C90 6.1.3.4, C99 and C11 6.4.4.4).</cite>
  104. <p>See <a href="http://gcc.gnu.org/onlinedocs/cpp/Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior">Implementation-defined
  105. behavior</a> in <cite>The C Preprocessor</cite>.
  106. </p>
  107. </li><li> <cite>The value of a wide character constant containing more than one
  108. multibyte character or a single multibyte character that maps to
  109. multiple members of the extended execution character set, or
  110. containing a multibyte character or escape sequence not represented in
  111. the extended execution character set (C90 6.1.3.4, C99 and C11
  112. 6.4.4.4).</cite>
  113. <p>See <a href="http://gcc.gnu.org/onlinedocs/cpp/Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior">Implementation-defined
  114. behavior</a> in <cite>The C Preprocessor</cite>.
  115. </p>
  116. </li><li> <cite>The current locale used to convert a wide character constant consisting
  117. of a single multibyte character that maps to a member of the extended
  118. execution character set into a corresponding wide character code (C90
  119. 6.1.3.4, C99 and C11 6.4.4.4).</cite>
  120. <p>See <a href="http://gcc.gnu.org/onlinedocs/cpp/Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior">Implementation-defined
  121. behavior</a> in <cite>The C Preprocessor</cite>.
  122. </p>
  123. </li><li> <cite>Whether differently-prefixed wide string literal tokens can be
  124. concatenated and, if so, the treatment of the resulting multibyte
  125. character sequence (C11 6.4.5).</cite>
  126. <p>Such tokens may not be concatenated.
  127. </p>
  128. </li><li> <cite>The current locale used to convert a wide string literal into
  129. corresponding wide character codes (C90 6.1.4, C99 and C11 6.4.5).</cite>
  130. <p>See <a href="http://gcc.gnu.org/onlinedocs/cpp/Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior">Implementation-defined
  131. behavior</a> in <cite>The C Preprocessor</cite>.
  132. </p>
  133. </li><li> <cite>The value of a string literal containing a multibyte character or escape
  134. sequence not represented in the execution character set (C90 6.1.4,
  135. C99 and C11 6.4.5).</cite>
  136. <p>See <a href="http://gcc.gnu.org/onlinedocs/cpp/Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior">Implementation-defined
  137. behavior</a> in <cite>The C Preprocessor</cite>.
  138. </p>
  139. </li><li> <cite>The encoding of any of <code>wchar_t</code>, <code>char16_t</code>, and
  140. <code>char32_t</code> where the corresponding standard encoding macro
  141. (<code>__STDC_ISO_10646__</code>, <code>__STDC_UTF_16__</code>, or
  142. <code>__STDC_UTF_32__</code>) is not defined (C11 6.10.8.2).</cite>
  143. <p>See <a href="http://gcc.gnu.org/onlinedocs/cpp/Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior">Implementation-defined
  144. behavior</a> in <cite>The C Preprocessor</cite>. <code>char16_t</code> and
  145. <code>char32_t</code> literals are always encoded in UTF-16 and UTF-32
  146. respectively.
  147. </p>
  148. </li></ul>
  149. <hr>
  150. <div class="header">
  151. <p>
  152. Next: <a href="Integers-implementation.html#Integers-implementation" accesskey="n" rel="next">Integers implementation</a>, Previous: <a href="Identifiers-implementation.html#Identifiers-implementation" accesskey="p" rel="prev">Identifiers implementation</a>, Up: <a href="C-Implementation.html#C-Implementation" accesskey="u" rel="up">C Implementation</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  153. </div>
  154. </body>
  155. </html>