在c99中引入了一些新特性,比如bool类型、C++风格的单行注释,等等。我们在较新的Linux平台上的C代码中经常可以看到这种应用。但在VS2005、VS2008等Windows的C编译器中,发现并不支持。
示例:
flying-bird@flyingbird:~/examples/cpp/c99$ cat main.c
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool c99_bool = true;
printf("bool: %d\n", c99_bool);
return 0;
}
flying-bird@flyingbird:~/examples/cpp/c99$ gcc main.c
flying-bird@flyingbird:~/examples/cpp/c99$ ./a.out
bool: 1
flying-bird@flyingbird:~/examples/cpp/c99$
同样的代码在VS2005下编译报错:
1>------ 已启动生成: 项目: c99_bool, 配置: Debug Win32 ------
1>正在编译...
1>main.c
1>d:\examples\cpp\c99_bool\c99_bool\c99_bool\main.c(2) : fatal error C1083: 无法打开包括文件:“stdbool.h”: No such file or directory
1>生成日志保存在“file://d:\examples\cpp\c99_bool\c99_bool\Debug\BuildLog.htm”
1>c99_bool - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========