bool .c .cpp

C | 2020-11-16 17:27:38 | 阅读 1030 次 | 评论(5)

今天发现一个小秘密:

写代码时使用了bool类型,奇怪的是,编译报错,前两天我在另一台电脑都使用正常啊,为什么呢,经过一番上网搜索,终于发现,在DEV C++里,如果源程序扩展名是 .c 则编译报错,如果扩展名是 .cpp,则编译通过,理由是,.c,编译器则按C语言编译,而C语言没有bool类型。.cpp 编译器则按C++语言编译,C++有 bool 类型。

文章评论,共5条
apull
2020-11-24 14:43
1
c没有bool类型可以自己定义一个

#define false 0
#define true 1

typedef unsigned char BOOL;
实产些迅(游客)
2020-11-25 18:26
2
可从用枚举
typedef enum Bool{True=1,False=0} Bool;
实产些迅(游客)
2020-11-25 18:31
3
可以用枚举
typedef enum Bool{True=1,False=0} Bool;
要声明在函数外,非零在C中可以代表真,零代表假
给已有的int long unsigned起别名不建议
再不行,就用.cpp,C++兼容C的语法
八画小子
2020-11-28 17:02
4
以下是引用apull在2020-11-24 14:43的发言1
c没有bool类型可以自己定义一个

#define false 0
#define true 1

typedef unsigned char BOOL;
C没有,但C标准库还是有的。#include <stdbool.h>  里面有bool
实产些迅(游客)
2020-12-19 18:30
5
以下是引用apull在2020-11-24 14:43的发言1
c没有bool类型可以自己定义一个

#define false 0
#define true 1

typedef unsigned char BOOL;
给unsigned char 起别名,那么BOOL的值可以为0~255,而c++中只可以是true(1),false(0),
如果这样做,以下代码也是合法的:
    BOOL b = 56;
这不是我们想要的,
.cc(.cpp)文件中,我们的bool则不会;
枚举实现BOOL:
typedef enum{True = 1,False = 0} BOOL;
之后,我们可以这样:
    BOOL b = True;
或:
    BOOL b = 1; // True
    BOOL b2 = 0; //False
实现了c++中bool的作用。
游客请输入验证码
浏览23772次