C编译时`true' undeclared (first use in this function)

本文介绍了在C语言中遇到bool、true、false未声明错误的原因,并提供了两种解决方案:一是通过更改文件扩展名为.cpp并使用C++编译器;二是提供了一个宏定义,允许在C90标准下使用bool类型。

在编译C语言时有时会遇到这样的错误提示:

'true' undeclared (first use in this function) or `false' undeclared (first use in this function)

就是说 bool, true, false 都是undeclared,原因很简单,因为真正的C中没有这些关键字,c和早期的c++里没有关键字bool,使用BOOL可以,但BOOL不是内置类型了,都是通过typedef或者宏来定义的,通常都会被定义成int类型。后来的c++出现了内置类型bool,值只能为true(1)和false(0)。

解决方法:

1、将文件名.c改为文件名.cpp,用C++方式编译则没问题
2、自己进行一个宏定义:
typedef enum __bool { false = 0, true = 1, } bool;
c90是没有bool的,因此支持c90的dev-c++当然也没有。想在c90里用bool,可以自行用宏进行定义。
c99支持bool,用支持c99的编译器例如gcc就可以的。

#include <stdio.h>
typedef enum __bool { false = 0, true = 1, } bool;

void main()
{
    bool b = true;
    printf("%d\n",b);
    bool c = false;
    printf("%d\n",c);
}

转载于:https://www.cnblogs.com/muahao/p/7029113.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值