c99在不同编译器的实现情况

本文探讨了C99引入的bool类型和C++风格的单行注释在Linux平台上的良好支持,以及这些特性在Windows的VS2005、VS2008编译器中不被支持的情况。通过示例代码分析了VS2005下编译错误的原因,并提供了在不同环境下正确使用C99特性的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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 已跳过 ==========



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值