在 C 语言中,「声明」是一类特殊的语句,它赋一个标识符予确定的含义。
例如,当我们写下 int x;
这个语句的时候,我们表达的意思是「 x
是一个 int
类型的变量」。
我们可以声明「函数」,「数组」,「指针」,以及这些东西互相修饰之后得到的东西,比如说:
在这篇文章中,我们并不打算严肃或者严谨地讲 C 语言的声明语法,我们只是尝试通过几个例子来帮助读者理解这个概念。
为了提取出上述的这些含义,解析器将我们在 .c
文件或者 .h
文件写的内容读取到内存中,但是这样做之后,类似于 int x;
这样的语句在解析器看来只是字符串。
为了从 int x;
这样的字符串中提取出「x
是一个 int
类型的变量」这样的信息,解析器需要依照一些定义好的语法规则对字符串进行解析,在此过程中将字符串转换为专门用来描述语法结构的对象。
语法规则,或称语法产生式,有严谨的描述方法。但是在下文中,我们只会用不严谨的方式来描述 C 语言中的声明语法。
一个声明子可以是下述形式之一:
(
声明子 )
*
声明子