5

ヘッダーファイルの作成を学んでいます。これが私のコードです(3つの別々のファイル)

//Main.cpp
#include <iostream>
#include "functions.h"
;
using namespace std;

int main()
{
    cout << multiply(3, 4) << endl;

    return 0;
}

//functions.cpp
int multiply(int x, int y)
{
    return x * y;
}

//functions.h
#ifndef FUNCTIONS_H_
#define FUNCTIONS_H_

int multiply(int x, int y)

#endif

コードはコンパイルして実行しますが、気になる部分は Main.cpp にあります。「functions.h」の下と「using namespace」の上にセミコロンがあります。

ビジュアルスタジオがそれを期待していると言っていたのでそこに置いたのですが、その理由はわかりません。チュートリアルでは見られません。

確かに、それは動作します。しかし、なぜそれが存在するのか、存在してはならないのかを知らないのは好きではありません。

4

2 に答える 2

14

functions.h にセミコロンが 1 つ欠けているためです。

int multiply(int x, int y);
                          ^^^^ here

C++ はステートメントをセミコロンで区切ります。

これ#include directive により、「functions.h」ファイルの内容がファイルの内容とともにコンパイラに送信されます。この結果、ヘッダー ファイルのミスによるコンパイル エラーが、ヘッダー ファイルを含むコードで報告されることがよくあります。(thx to Philipp)

于 2012-12-29T00:25:36.253 に答える
6

C プリプロセッサは C の構文についてまったく何も知らないので、電子メール、アセンブラ ソース ファイル、または必要に応じて HTML をまとめるために使用できます。コンパイラが実際にコンパイルできるように、すべてのソースを 1 つの長いファイルに入れるだけです。

int multiply(int x, int y)また、「functions.h」の後にセミコロンがありません。

于 2012-12-29T00:28:01.553 に答える