- ベストアンサー
VC++2010 EE で #ifdef _MSC_VER #endi
VC++2010 EE で #ifdef _MSC_VER #endif でエラー ソース始まり // _msc_ver.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #ifdef _MSC_VER #include "stdafx.h" #endif int _tmain(int argc, _TCHAR* argv[]) { return 0; } ソース終わり > fatal error C1020: 予期しない #endif です。 と出ます。なぜでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#include "stdafx.h"より前のプロプロセッサ命令は無視されます #include "stdafx.h" #define AAA 10 int main(void) { printf("%d", AAA); return 0; } はOKですが #define AAA 10 #include "stdafx.h" int main(void) { printf("%d", AAA); return 0; } にすると warning C4603: 'AAA': マクロが定義されていないか、プリコンパイル済みヘッダーが使用している定義とは異なります ここで定義するのではなくプリコンパイル済みヘッダーにマクロを追加します のように警告が出ます #ifdef _MSC_VER #include "stdafx.h" #endif だと#ifdefがなかったことにされるためエラーになります
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
stdafx.h がプリコンパイル・ヘッダに指定されているからでしょうね。
質問者
お礼
回答ありがとうございました。
お礼
回答ありがとうございました。 #IFDEF _MSC_VER と #ENDIF は削除して #include "stdafx.h" // VC++ 以外は、この行をコメントにする。 と注釈をつけることにします。