質問

と同様を表現しようとした記述 への変換'size_t'から'int'変更にその結果GCC C, かわいを保つために警告を受けて下GCC4.2.1も<日本語仮抄訳>欧州連の下でのVS2008SP1と、32-bitおよび64ビットの編集に対し、無効の警告下GCCに合わせてVS2008.

例えば、GCC4.2.1下に64ビットの条件は、以下の警告として下壁面条件:

#include <string.h>
bool foo()
{
    size_t len = 0;
    const char * someBuffer = "flubber";
    len = strlen(someBuffer);
    bool retval = false;
    for (int j = 0; j < len; j++) // <-- warning
    {
        if (someBuffer[j] != '0')
        {
            retval = true;
            break;
        }
    }
    return retval;
}

イ警告:

warning: comparison between signed and unsigned integer expressions

ものではない<日本語仮抄訳>欧州連のVS2008SP1 64bitコンパイラなどのようなpragmasやってみると何かを用い/W3や/W4、w3some_warning_number または/w4some_warning_number, など。

今、ないです、ごめんなさいのダウGCCの警告レベルまたは無効に警告いため、注意が非常に充分な理由があります。うにしていきたいと思いますVSビルド失敗と同様の場合/WXが有効になります。こないといけないと思っている人から、一部の警告がんにVS2008?

編集:この警告が表示された32ビットのビルドで使用しない64ビットを使用し、同じコンパイラオプションを以下に示す。

/O2
/Ob2
/D "WIN32"
/D "_WINDOWS"
/D "NDEBUG"
/D "_CRT_SECURE_NO_WARNINGS"
/D "__WIN32__"
/D "_SCL_SECURE_NO_WARNINGS"
/D "_BIND_TO_CURRENT_MFC_VERSION"
/D "_BIND_TO_CURRENT_CRT_VERSION"
/D "WINVER=0x0502"
/D "_WIN32_WINNT=0x0502"
/D "_WIN32"
/D "_NT"
/D "_CRT_NONSTDC_NO_WARNINGS"
/D "_MBCS"
/FD
/EHsc
/MD
/W3
/WX
/TP
/Zm1000

編#1:見どこれまでのプログラムVisual Studio idiosyncrasy、掲載 Visual C++開発センター-警告C4018:'<':符号付き/符号なしのミスマッチが放出される32ビットは64ビットの作成下VS2008SP1 64bit Windows.

編集#2:に向けた投稿を、Microsoftからの接続の Visual C++開発センターを掲載, は、本日(2011-01-11)マイクロソフトに答えた私の質問や確認してコンパイラ:彼らはこの問題に加え、受注残高を固定は将来のリリース: Microsoft接続の警告C4018:'<':符号付き/符号なしのミスマッチが放出される間のようなサイズの種類.

役に立ちましたか?

解決 2

自分の質問に答える:元の質問のエリアで私のEDIT#2を参照してください。現在では、コンパイラの問題としてMicrosoftによって認識されます。

他のヒント

いった間違っているのは、その行のコードを生み出す構造になっ希望する"警告C4018:'<':符号付き/符号なしのミスマッチ".

ここでの私の試験プロジェクトのコンパイラ設定の場合、これらの慈善団体に寄付してもよいで:

/Od/D WIN32/D"_DEBUG"/D"_CONSOLE"/D"_UNICODE"/D"UNICODE"/Gm/EHsc/RTC1/MDd/湯"stdafx.h"/Fp"デバッグ estproj1.pch"/Fo"デバッグ\"/Fd"デバッグ\vc90.pdb"/W3/nologo/c/ZI/TP/errorReport:速

編集:この試験の32ビットの視覚スタジオが聞こうとしているのですが約64ビットのコンパイルで、この情報は無関係ので、ご容赦.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top