Various small fixes.
* c.texi (Lvalues): Dereferencing fn ptr is not an lvalue. String constant is an lvalue. Array constructor is an lvalue. (Write Assignments Separately): Minor cleanup. (Integer Variations): State minimum sizes of numeric types. (Unicode Character Codes): Explain invalid universal character names. (Structures): Define "compound type" and index it.
This commit is contained in:
parent
db3b2f364c
commit
61fc722320
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2024-01-30 Richard Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* c.texi (Lvalues): Dereferencing fn ptr is not an lvalue.
|
||||||
|
String constant is an lvalue.
|
||||||
|
Array constructor is an lvalue.
|
||||||
|
(Write Assignments Separately): Minor cleanup.
|
||||||
|
(Integer Variations): State minimum sizes of numeric types.
|
||||||
|
(Unicode Character Codes): Explain invalid universal character names.
|
||||||
|
(Structures): Define "compound type" and index it.
|
||||||
|
|
||||||
2024-01-12 Richard Stallman <rms@gnu.org>
|
2024-01-12 Richard Stallman <rms@gnu.org>
|
||||||
|
|
||||||
* c.texi: fix typos.
|
* c.texi: fix typos.
|
||||||
|
|
41
c.texi
41
c.texi
|
@ -2646,7 +2646,7 @@ A variable.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
A pointer-dereference expression (@pxref{Pointer Dereference}) using
|
A pointer-dereference expression (@pxref{Pointer Dereference}) using
|
||||||
unary @samp{*}.
|
unary @samp{*}, if its type is not a non-function type.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
A structure field reference (@pxref{Structures}) using @samp{.}, if
|
A structure field reference (@pxref{Structures}) using @samp{.}, if
|
||||||
|
@ -2665,7 +2665,13 @@ An array-element reference using @samp{[@r{@dots{}}]}, if the array
|
||||||
is an lvalue.
|
is an lvalue.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
A structure or union constructor.
|
A string constant (@pxref{String Constants}).
|
||||||
|
|
||||||
|
@item
|
||||||
|
An array constructor (@pxref{Constructing Array Values}).
|
||||||
|
|
||||||
|
@item
|
||||||
|
A structure or union constructor (@pxref{Structure Constructors}).
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
If an expression's outermost operation is any other operator, that
|
If an expression's outermost operation is any other operator, that
|
||||||
|
@ -2989,7 +2995,7 @@ if (x = advance (x), x != 0)
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
However, putting the assignment in a separate statement is usually clearer
|
However, putting the assignment in a separate statement is usually clearer
|
||||||
unless the assignment is very short, because it reduces nesting.
|
(unless the assignment is very short), because it reduces nesting.
|
||||||
|
|
||||||
@node Execution Control Expressions
|
@node Execution Control Expressions
|
||||||
@chapter Execution Control Expressions
|
@chapter Execution Control Expressions
|
||||||
|
@ -3978,10 +3984,10 @@ platform, too. Even for GNU C, there is no general rule.
|
||||||
|
|
||||||
In theory, all of the integer types' sizes can vary. @code{char} is
|
In theory, all of the integer types' sizes can vary. @code{char} is
|
||||||
always considered one ``byte'' for C, but it is not necessarily an
|
always considered one ``byte'' for C, but it is not necessarily an
|
||||||
8-bit byte; on some platforms it may be more than 8 bits. ISO C
|
8-bit byte; on some platforms it may be more than 8 bits. @code{short
|
||||||
specifies only that none of these types is narrower than the ones
|
int} and @code{int} are at least two bytes long (it may be longer).
|
||||||
above it in the list in @ref{Basic Integers}, and that @code{short}
|
@code{long int} is at least four bytes long, and @code{long long int}
|
||||||
has at least 16 bits.
|
at least eight bytes long.
|
||||||
|
|
||||||
It is possible that in the future GNU C will support platforms where
|
It is possible that in the future GNU C will support platforms where
|
||||||
@code{int} is 64 bits long. In practice, however, on today's real
|
@code{int} is 64 bits long. In practice, however, on today's real
|
||||||
|
@ -4793,12 +4799,16 @@ And in an identifier:
|
||||||
int foo\u6C34bar = 0;
|
int foo\u6C34bar = 0;
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Codes in the range of @code{D800} through @code{DFFF} are limited to
|
Codes in the range of D800 through DFFF are invalid in universal
|
||||||
very specialized uses, too specialized to explain here. Codes less
|
character names. Trying to write them using @samp{\u} causes an
|
||||||
than @code{00A0} are invalid, except for @code{0024}, @code{0040}, and
|
error. Unicode calls them ``surrogate code points'' and uses them in
|
||||||
@code{0060}; these characters are actually ASCII control characters,
|
UTF-16 for purposes too specialized to explain here.
|
||||||
and you can specify them with other escape sequences (@pxref{Character
|
|
||||||
Constants}).
|
Codes less than 00A0 are likewise invalid in universal character
|
||||||
|
names, and likewise cause errors, except for 0024 (@samp{$}), 0040
|
||||||
|
(@samp{@@}), and 0060 (@samp{`}). Character codes which can't be
|
||||||
|
represented with universal character names can be specified with octal
|
||||||
|
or hexadecimal escape sequences (@pxref{Character Constants}).
|
||||||
|
|
||||||
@node Wide Character Constants
|
@node Wide Character Constants
|
||||||
@section Wide Character Constants
|
@section Wide Character Constants
|
||||||
|
@ -5850,10 +5860,13 @@ appropriate unsigned integer type.
|
||||||
@cindex structures
|
@cindex structures
|
||||||
@findex struct
|
@findex struct
|
||||||
@cindex fields in structures
|
@cindex fields in structures
|
||||||
|
@cindex compound type
|
||||||
|
|
||||||
A @dfn{structure} is a user-defined data type that holds various
|
A @dfn{structure} is a user-defined data type that holds various
|
||||||
@dfn{fields} of data. Each field has a name and a data type specified
|
@dfn{fields} of data. Each field has a name and a data type specified
|
||||||
in the structure's definition.
|
in the structure's definition. Because a structure combines various
|
||||||
|
fields, each of its own type, we call a structure type a
|
||||||
|
@dfn{compound type}.
|
||||||
|
|
||||||
Here we define a structure suitable for storing a linked list of
|
Here we define a structure suitable for storing a linked list of
|
||||||
integers. Each list item will hold one integer, plus a pointer
|
integers. Each list item will hold one integer, plus a pointer
|
||||||
|
|
Loading…
Reference in New Issue