2012-05-17 34 views
5

我最近開始使用vtk包,我看到這個奇數的表示法,他們在包含大括號}後包括;。下面是從vtkUnstructuredGrid.hC++中的大括號後面的分號

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

一個例子這是沒有必要的和QtCreator也正確地說extra ;解析代碼時檢測到這一點。我很好奇這可能是什麼原因?也許可讀性?

+24

零任何理由。多餘的分號無關(並導致編譯器警告)。 – ildjarn

+7

自動生成的代碼也許?這可能會簡化邏輯(有點像添加一個額外的','到枚舉中的最後一個值),很難說。 –

+0

@EdS。嗯,也許。我記得CMake在編譯時生成了一些文件... – GradGuy

回答

0

這並不罕見。在C++中,聲明以;結束。所以聲明是int GetDataObjectType();。 現在,這個語句是一個函數,它也有一個塊定義:int GetDataObjectType() {};裏面的塊,我們有另一個語句:return VTK_UNSTRUCTURED_GRID;所以整行可能有一個額外的分號,但它不是一個分號太多,它只是一個分號你可能忽略。

1

由於QtCreator正確檢測到,這個肯定是一個額外的分號,它不僅無用,而且還會導致編譯器警告和混淆。

爲了與-Wpedantic標誌will trigger例如GCC:

warning: extra ';'