相关疑难解决方法(0)

功能后的分号

是否有一个特定的原因,为什么有些人在卷曲闭合函数括号后添加分号?

void foo() {

};
Run Code Online (Sandbox Code Playgroud)

c++ syntax

20
推荐指数
2
解决办法
2万
查看次数

C++翻译单元的语法

我很长一段时间以来的理解是,在预处理器运行之后,C++转换单元是一系列声明(让我提醒任何定义也是一个声明).

很多人都赞同这个说法,但没有人给出反例.但我自己发现这个让我烦恼的例子:

int x;       //declaration

;            // ??? EMPTY DECLARATION?

int main()   //dec
{            //la
}            //ration
Run Code Online (Sandbox Code Playgroud)

这与MSVC和在线照片很好地编辑.我知道标准定义了一个空语句,但我从未听说过空声明.所以,我看到三个选择:

  • 我的理解是正确的,标准定义了一个空声明
  • 我的理解是正确的,但标准没有定义空声明,上面的翻译是不正确的
  • 我的理解是不正确的,即C++ TU不是一系列声明

请帮我解除疑惑.谢谢

c++ grammar declaration

9
推荐指数
2
解决办法
1295
查看次数

标签 统计

c++ ×2

declaration ×1

grammar ×1

syntax ×1