Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Токены
token
:
keyword
identifier
constant
string-literal
punctuator
preprocessing-token
:
header-name
identifier
pp-number
character-constant
string-literal
punctuator
любой символ, отличный от пробела, который не может быть одним и перечисленных выше элементов
Ключевые слова
keyword
: один из
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
inline
int
long
register
restrict
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
_Alignas
_Alignof
_Atomic
_Bool
_Complex
_Generic
_Imaginary
_Noreturn
_Static_assert
_Thread_local
Список дополнительных ключевых слов для систем Майкрософт см. в статье Ключевые слова в C.
Identifiers
identifier
:
identifier-nondigit
identifier
identifier-nondigit
identifier
digit
identifier-nondigit
:
nondigit
universal-character-name
другие символы, определенные реализацией
nondigit
: один из
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
digit
: один из
0
1
2
3
4
5
6
7
8
9
universal-character-name
:
\u
hex-quad
\U
hex-quad
hex-quad
hex-quad
:
hexadecimal-digit
hexadecimal-digit
hexadecimal-digit
hexadecimal-digit
Константы
constant
:
integer-constant
floating-constant
enumeration-constant
character-constant
integer-constant
:
decimal-constant
integer-suffix
необ.
binary-constant
1 integer-suffix
необ.
octal-constant
integer-suffix
необ.
hexadecimal-constant
integer-suffix
необ.
decimal-constant
:
nonzero-digit
decimal-constant
digit
binary-constant
:1
binary-prefix
binary-digit
binary-constant
binary-digit
binary-prefix
1: один из
0b
0B
binary-digit
1: один из
0
1
octal-constant
:
0
octal-constant
octal-digit
hexadecimal-constant
:
hexadecimal-prefix
hexadecimal-digit
hexadecimal-constant
hexadecimal-digit
hexadecimal-prefix
: один из
0x
0X
nonzero-digit
: один из
1
2
3
4
5
6
7
8
9
octal-digit
: один из
0
1
2
3
4
5
6
7
hexadecimal-digit
: один из
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
A
B
C
D
E
F
integer-suffix
:
unsigned-suffix
long-suffix
необ.
unsigned-suffix
long-long-suffix
необ.
long-suffix
unsigned-suffix
необ.
long-long-suffix
unsigned-suffix
необ.
unsigned-suffix
: один из
u
U
long-suffix
: один из
l
L
long-long-suffix
: один из
ll
LL
floating-constant
:
decimal-floating-constant
hexadecimal-floating-constant
decimal-floating-constant
:
fractional-constant
exponent-part
opt floating-suffix
opt
digit-sequence
exponent-part
floating-suffix
необ.
hexadecimal-floating-constant
:
hexadecimal-prefix
hexadecimal-fractional-constant
binary-exponent-part
необ. floating-suffix
необ.
hexadecimal-prefix
hexadecimal-digit-sequence
binary-exponent-part
floating-suffix
необ.
fractional-constant
:
digit-sequence
необ. .
digit-sequence
digit-sequence
.
exponent-part
:
e
необ.sign
digit-sequence
E
необ.sign
digit-sequence
sign
: один из
+
-
digit-sequence
:
digit
digit-sequence
digit
hexadecimal-fractional-constant
:
hexadecimal-digit-sequence
необ. .
hexadecimal-digit-sequence
hexadecimal-digit-sequence
.
binary-exponent-part
:
p
необ.sign
digit-sequence
P
необ.sign
digit-sequence
hexadecimal-digit-sequence
:
hexadecimal-digit
hexadecimal-digit-sequence
hexadecimal-digit
floating-suffix
: один из
f
l
F
L
enumeration-constant
:
identifier
character-constant
:
'
c-char-sequence
'
L'
c-char-sequence
'
c-char-sequence
:
c-char
c-char-sequence
c-char
c-char
:
Любой элемент исходной кодировки, кроме одинарной кавычки ('
), обратной косой черты (\
) и символа новой строки
escape-sequence
escape-sequence
:
simple-escape-sequence
octal-escape-sequence
hexadecimal-escape-sequence
universal-character-name
simple-escape-sequence
: один из
\a
\b
\f
\n
\r
\t
\v
\'
\"
\\
\?
octal-escape-sequence
:
\
octal-digit
\
octal-digit
octal-digit
\
octal-digit
octal-digit
octal-digit
hexadecimal-escape-sequence
:
\x
hexadecimal-digit
hexadecimal-escape-sequence
hexadecimal-digit
Строковые литералы
string-literal
:
encoding-prefix
"
s-char-sequence
необ. "
encoding-prefix
:
u8
u
U
L
s-char-sequence
:
s-char
s-char-sequence
s-char
s-char
:
Любой элемент исходной кодировки, кроме двойной кавычки ("
), обратной косой черты (\
) и символа новой строки
escape-sequence
Символы пунктуации
punctuator
: один из
[
]
(
)
{
}
.
->
++
--
&
*
+
-
~
!
/
%
<<
>>
<
>
<=
>=
==
!=
^
|
&&
||
?
:
;
...
=
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
,
#
##
<:
:>
<%
%>
%:
%:%:
Имена заголовков
header-name
:
<
h-char-sequence
>
"
q-char-sequence
"
h-char-sequence
:
h-char
h-char-sequence
h-char
h-char
:
любой член исходного набора символов, кроме символа новой строки и >
q-char-sequence
:
q-char
q-char-sequence
q-char
q-char
:
любой член исходного набора символов, кроме символа новой строки и "
Предварительная обработка чисел
pp-number
:
digit
.
digit
pp-number
digit
pp-number
identifier-nondigit
pp-number
e
sign
pp-number
E
sign
pp-number
p
sign
pp-number
P
sign
pp-number
.
1 binary-constant
, binary-prefix
и binary-digit
— расширения для систем Майкрософт.