0
typedef char bool;

動作しません(編集:Intellisenseによる推論だけでなく、「致命的なエラーC1004:予期しないファイルの終わりが見つかりました」に対してコンパイルされません)。私が推測する理由は、bool が Microsoft Visual C/C++ の予約済みキーワードの 1 つであるためです。ブール型のリテラル名が正確な「bool」として必要なので (つまり、次のような bool 以外の型名

boolean
BOOLEAN
BOOL
Bool
...

ANSI C(ISO/IEC-9899:1990) Microsoft Visual C/C++ に準拠していないキーワード「bool」をオーバーライドするために使用できるコンパイル オプションはありますか?

注意: これは C++ や VISUAL C++ に関するものではありません。互換モードの MSVC コンパイラを使用した ANSI C 90 でのプログラミングについてです。

前もって感謝します。

補足

コンパイル オプション: /TC /Za

/* ANSI C file main.c */

typedef char bool;

int main(int argc, char * argv[])
{
    return 0;
}

(編集: この問題は解決されました。この場合 - typedef char bool - ANSI C に関しては、/Za オプションを設定して Microsoft 言語拡張機能を無効にすることはできませんが、Microsoft は反対のことを提案しています。 Visual Studio 2012 RC では潜在的なバグとして扱われます)

4

1 に答える 1

0

コンパイルするタイプを選択できるファイルのオプションがあります(CまたはC ++を選択できます)

また、stdbool.hを試しましたか

于 2012-07-26T01:47:05.473 に答える