c - 如何阅读抽象编程信息

标签 c

我昨天做了一个测试,我发现自己必须理解一些我不知道的东西。

请参阅以下页面:

declaration-list:
  declaration
  declaration-list declaration 
declaration-specifiers:
  storage-class-specifier declaration-specifiersopt
  type-specifier declaration-specifiersopt
  type-qualifier declaration-specifiersopt 
storage-class specifier: one of
  auto register static extern typedef 
type specifier: one of
  void char short int long float double signed
  unsigned struct-or-union-specifier enum-specifier typedef-name 
type-qualifier: one of
  const volatile 
struct-or-union-specifier:
  struct-or-union identifieropt { struct-declaration-list }
  struct-or-union identifier 
struct-or-union: one of
  struct union 
struct-declaration-list:
  struct declaration
  struct-declaration-list struct declaration 
init-declarator-list:
  init-declarator
  init-declarator-list, init-declarator 
init-declarator:
  declarator
  declarator = initializer 
struct-declaration:
  specifier-qualifier-list struct-declarator-list; 
specifier-qualifier-list:
  type-specifier specifier-qualifier-listopt
  type-qualifier specifier-qualifier-listopt 
struct-declarator-list:
  struct-declarator
  struct-declarator-list , struct-declarator 
struct-declarator:
  declarator
  declaratoropt : constant-expression 
enum-specifier:
  enum identifieropt { enumerator-list }
  enum identifier 

这是来自 Brian W. Kernighan 所著的《C 编程语言》一书 Dennis M. Ritchie,但我在互联网和许多其他书籍上看到了它。

我尝试用谷歌搜索它,但坦率地说,我不知道它是怎么称呼的,所以我找不到任何相关信息。我们的教授从未强制我们阅读它,我现在相信知道如何阅读它非常重要。

我正在寻找指南引用或有关如何实现它的简短说明。

如果这是转发,我深表歉意,但我找不到任何相关帖子。

最佳答案

第一个定义...

declaration-list:
    declaration
    declaration-list declaration

...可以理解为:“声明列表可以是一个声明,也可以是一个声明列表后跟一个声明。”

此递归定义允许将以下内容作为声明列表的示例:

  • 声明
  • 声明声明
  • 声明声明声明
  • 等等

完整的语法定义将包含描述有效声明的其他规则,等等。

关于c - 如何阅读抽象编程信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45868890/

相关文章:

python - 如何编写一个接受 int 或 float 的 C 函数?

c - 编写 MIPS 机器指令并从 C 执行它们

c - 为什么预处理器不扩展代码中稍后定义的类型

c - C if 语句无效?

c - 在 c 中一次处理多个连接

用 GCC 编译 C 文件会产生错误?

c - 这个 C 表达式是如何求值的

c - 循环遍历 c 中预先存在的变量集的策略

c - 语言识别

c - AVX2 稀疏矩阵乘法