记号#
下面列举本教程中用到的记号:
语法记号#
Grammar
代表了代码的语法,其中
斜体
是语法结构中可替换的占位符。
表示该部分可选。
用连接符-连接的符号
表示两个替换之中没有空格地相连。
在语法替换符的描述过程中,为了表达简便,我们用正则表达式(regular expression)来表达一个串允许的组成。 以下是我们会用到的正则表达式符号:
- + 表示前面的符号一个或重复多个,如:
a
+表示:a
、aa
、aaa
等。 - * 表示前面的符号零个或以上,如:
b
a
*表示:b
、ba
、baa
等。 - ? 表示前面的符号零个或一个,如:
b
a
?表示:b
或ba
。 - | 表示或者,如:
is
|are
表示:is
或are
。 - [] 表示在其中的任意一个字符。如[
abc
]表示a
或b
或c
。- 其中可以使用-表示范围。如[
0
-9
]表示0
到9
中的任意一个字符, [0
-9
A
-F
]表示0
到9
,或A
到F
中的任意一个字符。
- 其中可以使用-表示范围。如[
- () 括号,如
a
(t
|re
)表示at
或are
。 - 符号之间可以组合,如[
1
-9
][0
-9
]*表示不以0
开始的十进制数位串。 - 为了直观,我们用
-
表示一个负号,以与-区分,这个标准的正则表达式(\-)不同。 同理的还有+
。
其他记号#
Detail
详情。
Hint
在C语言本身之外一些补充性的内容。
Attention
需要注意的内容。如果不遵守,可能引发错误。
Note
补充注释性的内容。通常对理解有帮助。
Error
用来展示编译器的报错。
Exercise
小练习。
Tip
小贴士。
Implementation-defined
实现定义的,这表示标准没有明确规定此部分内容。编译器可以以固定的方式选择实现。
Undefined-behavior
未定义行为。这说明程序设计中出现了不应该存在的错误(如试图除以0),而其结果是不确定的。 编译器会基于他们不存在的断定而进行编译。
Good-practice
好习惯,尽量遵守。