c语言 使用枚举类型实现bool类型

最近学习数据结构,发现教材的程序采用的c++写的,并不是纯c语言程序,于是我想尝试自己用纯c语言编写,遇到的第一个问题就是:c++有bool类型,但是c语言没有这玩意,如果采用#define来对True和False 结合int进行宏定义倒也是可以实现,但是这样也有明显的缺点:当在不同的c源文件中同时使用时,就需要在每一个c源文件中进行#define定义,而这种操作无疑要逼死强迫症。于是,我萌生了采用enum类型来实现bool类型的想法,具体实现如下:

1.首先,创建bool.h头文件,并写入以下程序:

#ifndef __BOOL_H
#define __BOOL_H

typedef enum bool{
    False,True          //False=0, True=1
}bool;

#endif //!__BOOL_H

2.在需要用到bool类型的c源文件中#include "bool.h"就可以使用了

3.测试

#include<stdio.h>
#include"bool.h"
bool fff()        //实现声明返回值为 bool 类型 的函数
{
    return True;
}
int main(void)
{    
    printf("True=%d\n",True);       
    printf("False=%d\n",False); 

    bool w =fff();      //实现声明返回值为 bool 类型 的变量,并测试函数是否返回True

//如果w=True,则 !w == 0,即下面这行就不会被打印;

//同时验证了bool 类型的变量 w 可以实现取反操作
    if(!w)       
    {
        printf("***************");
    }
    else
        printf("&&&&&&&&&&&&&&&&&");
    return 0;
}

4.测试结果如下:

 测试结果很成功!!!

注:我使用的 dev-cpp5.11编程软件,如果使用其他软件直接运行本程序,有可能会发生“小黑窗口”一闪而过的情况,需要自行添加 按下任意键继续功能,以方便观看运行结果。

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

weixin_44653872

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值