0
typedef char bool;

不起作用(编辑:它不能编译为“致命错误 C1004:发现意外的文件结尾”,而不仅仅是 Intellisense 的推断)。我假设的原因是 bool 是 Microsoft Visual C/C++ 中的保留关键字之一。因为我需要布尔类型的文字名称作为精确的“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 回答