エラー C2129: 静的関数 'void func(int,char *)' が宣言されていますが、定義されていません
私はそれを読んだ:
静的関数は、ファイル スコープ内で定義する必要があります。関数が別のファイルで定義されている場合は、extern として宣言する必要があります。
ファイル スコープとは、C++ または .h のいずれかで定義する必要があること、または宣言されている .h ファイル内で定義する必要があることを意味しますか?
C++ コンパイラは .h ファイルを認識しません。ファイルの内容は、プリプロセッサ自体によって cpp ファイルに配置されます。ここで、ファイル スコープは、関数が cpp ファイルにある必要があるということです。
関数が別のファイルで定義されている場合は、extern として宣言する必要があります。
このステートメントでは、「別のファイル」は、コンパイル後に最終的にリンクされる「別のオブジェクト ファイル」に変換されます。Naveenが答えたように、コンパイラは関数がどのソースファイルで宣言されているかをあまり気にしません.