6

私は最近vtkパッケージの作業を開始しましたが、;中括弧を閉じた後に含まれているこの奇妙な表記が表示されます}。これがからの例ですvtkUnstructuredGrid.h

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

これは不要であり、QtCreatorextra ;はコードを解析するときに言うことでこれを正しく検出します。これの理由は何でしょうか?多分読みやすさ?

4

2 に答える 2

1

QtCreatorが正しく検出するように、これは間違いなく余分なセミコロンであり、役に立たないだけでなく、コンパイラの警告や混乱を引き起こす可能性があります。

たとえば、-Wpedanticフラグが設定されたGCCは次のようにトリガーします。

警告:余分な';'

于 2014-01-08T11:07:21.077 に答える
0

それは珍しいことではありません。C ++では、ステートメントは。で終わり;ます。したがって、ステートメントはint GetDataObjectType();です。このステートメントは関数であり、ブロックも定義されています。int GetDataObjectType() {};ブロック内に別のステートメントがあります。return VTK_UNSTRUCTURED_GRID;したがって、行全体に余分なセミコロンが含まれる場合がありますが、セミコロンではありません。多くの場合、セミコロンです省略します。

于 2012-11-24T22:54:45.257 に答える