1

VC コンパイラは、プロトタイプの実装が見つからない場合に警告できますか?

例 (パラメータの不一致に注意):

// calcSomething.h
int calcSomething(
    int    year,
    int    month,
    int    day,
    int    hour,
    int    minute,
    int    second
);

// calcSomething.cpp
int calcSomething(
    int    year,
    int    month,
    int    day
) 
{
  // ... implementation
}

更新:どうやら G++ には、-Wmissing-declarations私が必要とするものに沿っていると思われるスイッチが呼び出されているようですが、明らかに VC++ 用です。

4

2 に答える 2

2

答えはノーのようです。MSVC コンパイラには、G++ の -Wmissing-declarations に相当するオプションがありません。

カテゴリ別のコマンド ライン オプション

于 2014-01-20T15:43:25.610 に答える
2

これら 2 つは、C++ 言語の規則によると、まったく異なる関数です。

calcSomethingコンパイラは、最初の関数の名前が で、2 番目の関数の名前が であった場合と同じように反応する必要がありcalcSomeOtherThingます。

特に、ヘッダーで宣言した関数は実装されていないため、未定義になります。それを呼び出すコードはコンパイルおよびリンクされません。定義されていない関数を呼び出す実行可能ファイルを作成することはできません。コンパイラは、関数が呼び出されたときに何をすべきかを知りません。

于 2014-01-20T14:42:28.067 に答える