同一のプロジェクトで、異なるソースコードから関数を呼び出す (その1)

別のソースコードで定義された関数を main から呼び出す状況を作ります。

手順

[ソリューション エクスプローラー] の [ソース ファイル] を右クリックします その後 [追加] > [新しい項目] をクリックします
【備考】 [ソリューション エクスプローラー] は右クリックする項目が重要です。 ここで例えば [ヘッダー ファイル] を右クリックしてしまうと、この後追加するソースファイルが [ヘッダーファイル] 項目の配下で管理されてしまいます。
ダイアログ左側 [Visual C++] を押下、その後 [C++ ファイル (.cpp)] を押下します [名前] には "MySource.cpp" と入力します [追加] を押下します [ソース ファイル] 配下に "MySource.cpp" が追加されたことと、開かれた状態になったことを確認します "MySource.cpp" に下記を追加します
int mySourceFunc()
{
	return 444;
}
[ソリューション エクスプローラー] より "ConsoleApplication1.cpp" をダブルクリックして開きます main 関数に下記行を追加します
int main()
{
    printf("Hello World!\n");
    printf("myFunc: %d\n", myFunc());
    printf("mySourceFunc: %d\n", mySourceFunc());
}
[ローカル Windows デバッガー] より実行を試みます ・・・エラーダイアログとそのログが表示されます
ビルドを開始しました... 1>------ ビルド開始: プロジェクト: ConsoleApplication1, 構成: Debug Win32 ------ 1>ConsoleApplication1.cpp 1>D:\User\Desktop\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.cpp(9,34): error C3861: 'mySourceFunc': 識別子が見つかりませんでした 1>プロジェクト "ConsoleApplication1.vcxproj" のビルドが終了しました -- 失敗。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
宣言を追加しないと駄目だったのでした 次の行を追加します
#include 

int myFunc();
int mySourceFunc();

int main()
{
    printf("Hello World!\n");
    printf("myFunc: %d\n", myFunc());
    printf("mySourceFunc: %d\n", mySourceFunc());
}
再度 [ローカル Windows デバッガー] より実行します 無事 mySourceFunc() 関数を呼び出すことができました 別のソースファイルから関数を呼び出す場合も、呼び出し元で宣言すればその行以降で呼び出しが可能になる、ということになります。