记号#
下面列举本教程中用到的记号:
语法记号#
Grammar
代表了代码的语法,其中
斜体
是语法结构中可替换的占位符。
表示该部分可选。
用连接符-连接的符号
表示两个替换之中没有空格地相连。
在语法替换符的描述过程中,为了表达简便,我们用正则表达式(regular expression)来表达一个串允许的组成。 以下是我们会用到的正则表达式符号:
- + 表示前面的符号一个或重复多个,如:
a+表示:a、aa、aaa等。 - * 表示前面的符号零个或以上,如:
ba*表示:b、ba、baa等。 - ? 表示前面的符号零个或一个,如:
ba?表示:b或ba。 - | 表示或者,如:
is|are表示:is或are。 - [] 表示在其中的任意一个字符。如[
abc]表示a或b或c。- 其中可以使用-表示范围。如[
0-9]表示0到9中的任意一个字符, [0-9A-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
好习惯,尽量遵守。