error: use of undeclared identifier 'bool'以及C各编译器问题

今天用牛客网刷题时,很多本地可以编译的题,牛客网过不了,经核查发现是编译器的问题,C语言经过漫长的发展,有很多历史遗留问题。但只要不是祖传代码,一般修改量不大,祖传代码只有用vc++ 6.0编译了。

 

1 error: use of undeclared identifier 'bool'在1999年才引进了bool,所以在如clang1.9或gcc5.4 中会错(牛客网c很多就用的这个),可以加上头文件:

#include <stdbool.h>

 

2 error: variable-sized object may not be initialized

原因:在C中,使用变量来定义数组长度是,这个数组可以定义,却不能同时进行初始化赋值,需要在之后赋值。

 这个问题在c++中是不会出错的。

 

最后切记

bool a[5]={true};

或bool a[5]={1};

只是a[0]为true;

#include<stdio.h>

int main()
{
    bool a[5]= {true};
    for(int i=0; i<5; i++)
        printf("%d\n",a[i]);
    return 0;
}

 

bool a[5]={0};

bool a[5]={false};

则是

所以建议用初值为false的bool变量定义;

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值