C++ 中大括号后的分号

semicolon after curly braces in c++

本文关键字:C++      更新时间:2023-10-16

我最近开始使用 vtk 包,我看到这种奇怪的表示法,它们在关闭大括号后包含; }.这是vtkUnstructuredGrid.h的一个例子

// Description:
// Standard vtkDataSet API methods. See vtkDataSet for more information.
int GetDataObjectType() {return VTK_UNSTRUCTURED_GRID;};

这不是必需的,QtCreator 也会通过在解析代码时说出extra ;来正确检测到这一点。我很好奇这可能是什么原因?也许可读性?

正如QtCreator正确检测到的那样,绝对是一个额外的分号,不仅无用,而且还可能导致编译器警告和混乱。

例如,带有 -Wpedantic 标志的 GCC 将触发:

警告:额外的";"

这并不少见。在C++中,语句以 ; 结尾。所以声明是int GetDataObjectType();.现在,这个语句是一个函数,它也定义了一个块:int GetDataObjectType() {};块内部,我们还有另一个语句:return VTK_UNSTRUCTURED_GRID;,所以整行可能有一个额外的分号,但它不是分号太多,它只是一个分号,你可以省略。

相关文章:
  • 没有找到相关文章