C 如何阅读抽象编程信息
昨天我参加了一次考试,我发现自己必须理解一些我不知道的东西 请参阅下页:C 如何阅读抽象编程信息,c,C,昨天我参加了一次考试,我发现自己必须理解一些我不知道的东西 请参阅下页: 声明列表: 宣言 申报表申报 声明说明符: 存储类说明符声明说明符sopt 类型说明符声明说明符sopt 类型限定符声明说明符sopt 存储类说明符:其中一个 自动注册静态外部类型定义 类型说明符:其中一个 void char short int long float双符号 无符号结构或联合说明符枚举说明符typedef name 类型限定符:其中一个 常量挥发性 结构或联合说明符: 结构或联合标识符opt{struct
声明列表:
宣言
申报表申报
声明说明符:
存储类说明符声明说明符sopt
类型说明符声明说明符sopt
类型限定符声明说明符sopt
存储类说明符:其中一个
自动注册静态外部类型定义
类型说明符:其中一个
void char short int long float双符号
无符号结构或联合说明符枚举说明符typedef name
类型限定符:其中一个
常量挥发性
结构或联合说明符:
结构或联合标识符opt{struct declaration list}
结构或联合标识符
结构或联合:一种
结构联合
结构声明列表:
结构声明
结构声明列表结构声明
初始化声明器列表:
初始化声明器
初始化声明器列表,初始化声明器
初始化声明器:
声明人
声明符=初始值设定项
结构声明:
说明符限定符列表结构声明符列表;
说明符限定符列表:
类型说明符说明符限定符listopt
类型限定符说明符限定符listopt
结构声明器列表:
结构声明器
结构声明器列表,结构声明器
结构声明器:
声明人
declaratoropt:常量表达式
枚举说明符:
枚举标识符对象{枚举器列表}
枚举标识符
这是来自Brian W.Kernighan的《C编程语言》一书
丹尼斯·M·里奇,但我在网上和其他许多书上都看到了
我试着用谷歌搜索它,但坦率地说,我不知道它叫什么,所以我找不到任何相关信息。我们的教授从来没有让我们读过它,我现在相信知道如何读它是极其重要的
我正在寻找参考指南或简短的解释如何处理它
很抱歉,如果是转发,我找不到任何相关帖子。第一个定义
declaration-list:
declaration
declaration-list declaration
…可以理解为:“声明列表是声明或声明列表,后跟声明。”
此递归定义允许以下内容作为声明列表的示例:
- 声明
- 声明
- 声明
- 等等
完整的语法定义将包含描述构成有效声明的内容的附加规则,依此类推。它被称为语法表示法。其描述见:
声明
申报表申报 意味着一个声明列表是一个单独的声明,或者一个声明列表后跟一个单独的声明(即,它将递归地定义自己) 顺便说一句,这些声明列表是在C中键入函数参数的古老而过时的方式:
some_function(a, b)
int a;
double b;
{
printf("a = %d, b = %f\n", a, b);
}
inta;双b代码>部分为可选声明列表,双b代码>是一个单独的声明。因此,声明列表被递归地定义为一个声明的声明列表,或者后面跟一个声明的声明列表
要真正将这些句法结构的意义内化,您最好阅读或。另外请注意,语法只给出了C程序的语法,但C程序的约束和语义是以文本形式编写的。这是一种正式的上下文无关语法表示法,实际上它不是真正的BNF,而是一些其他表示法(例如,“其中之一”不是BNF,它应该是:=
,而不是简单的:
).它被称为:正式语法符号。不是严格的BNF(如果有的话)。如上所述,::=
和选择符号与经典BNF中的符号不同(在BNF中是|
,但此处是换行和缩进以及“其中之一”)。但想法是一样的。如果你理解一个,你就理解另一个。带有opt
下标的东西是语法中的可选项。谢谢!这就是我要找的。我找到了这本书使用的语法: