語彙基元
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
如需其他 Microsoft 特定關鍵字的清單,請參閱 C 關鍵詞。
識別碼
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
opt
binary-constant
1 integer-suffix
opt
octal-constant
integer-suffix
opt
hexadecimal-constant
integer-suffix
opt
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
opt
unsigned-suffix
long-long-suffix
opt
long-suffix
unsigned-suffix
opt
long-long-suffix
unsigned-suffix
opt
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
opt
hexadecimal-floating-constant
:
hexadecimal-prefix
hexadecimal-fractional-constant
binary-exponent-part
opt floating-suffix
opt
hexadecimal-prefix
hexadecimal-digit-sequence
binary-exponent-part
floating-suffix
opt
fractional-constant
:
digit-sequence
opt .
digit-sequence
digit-sequence
.
exponent-part
:
e
sign
opt digit-sequence
E
sign
opt digit-sequence
sign
:下列其中一個
+
-
digit-sequence
:
digit
digit-sequence
digit
hexadecimal-fractional-constant
:
hexadecimal-digit-sequence
opt .
hexadecimal-digit-sequence
hexadecimal-digit-sequence
.
binary-exponent-part
:
p
sign
opt digit-sequence
P
sign
opt 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
opt "
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
是 Microsoft 特定的擴充功能。