C ++中的声明结构C ++ Prog。 Bjarne撰写的Lang第四版153/154页

时间:2019-02-20 15:44:43

标签: c++

我正在学习C ++ Prog。 Bjarne撰写的Lang第4版。在第6章的第6.3.1节的第153页和第154页中,我发现了一些相互矛盾的陈述。

在第153页的6.3.1节中的说明符(可选地)包含名称

但是在第154页上说。

声明符由名称和可选的一些声明符运算符组成

任何人都可以澄清一下这是什么意思吗?这是否意味着名称和声明符运算符都是可选的?下面是第153和154页的摘录。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:6)

我手头没有这本书,但是声明符有两种不同的“类型”。有通常的声明符:

int a;
//  ^

正如Bjarne所说,此名称不是可选的。但是然后有一个称为抽象声明符的东西,它用于函数参数:

void f(int a, int);
//               ^ name optional

第一个引用所指的是哪个。

答案 1 :(得分:1)

我没有您引述的内容,但是Bjarne可能会简化其中一种情况。

这是标准对声明影响的说明:

  

声明(第7条)可以将一个或多个名称引入翻译单元或重新声明由先前声明引入的名称。

《宣言》条款的第一段:

  

声明通常指定名称的解释方式。

有许多不同类型的声明。太多,无法在此处列出所有内容。其中大多数声明一个或多个名称。这是一个不声明名称的声明示例:

 ;

它称为空声明。显然,此声明既没有可选的声明符也没有必需的声明符。