私は比較的 C に慣れていません (C++ を使用したくないため、または少なくともまだ使用したくないため)、発生しているインクルード エラーを修正する方法がわかりません。
定数値 1000 を含む Test という名前のヘッダー ファイルがあります。
const int Test = 1000;
このファイルは 2 つのファイルに含まれています。 Myfile.c と Myfile2.c にはそれぞれファイルが含まれています。
#include "MyHeader.h"
私のプロジェクトはビルド/コンパイルされません。変数「Test」を2回宣言しているため、ヘッダーが2回含まれていることがわかりました。調査の結果、ウィキペディアでこれを見つけました:http://bit.ly/10wPraP
この「インクルードガード」を使いました
例:
#ifndef MY_HEADER
#define MY_HEADER
const int Test = 1000;
#endif
また、プリプロセッサ (?) コマンド プラグマも 1 回試しました。
#pragma once
ただし、私のプログラムはまだビルドされません。変数 "Test" が MyFile.obj で既に定義されているというエラーが表示されるようになりました。
私はそれを使用しているので、これは Visual Studio-ism である可能性があると思いましたが、私の 2010 Express C++ と VS2003 Professional の両方がこれをビルドしません。Visual Studio 内でプロジェクトをクリーンアップしようとしましたが、他に何をすべきかわかりません。
私は非常にばかげていて、ここで明らかな何かを見逃していますか?それが機能しない理由ですか?
私はC#に慣れており、インクルードではなく名前空間を「使用」しています。CコードのみをコンパイルするようにVSで設定すると、これに影響する可能性がありますか?