加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 保持BOOL而不是bool

发布时间:2020-12-16 10:22:20 所属栏目:百科 来源:网络整理
导读:我知道,bool在C中使用,而BOOL是Microsoft特定类型,定义为int. 我的代码正在使用BOOL,因为它是为Windows开始的,但是当我要将它移植到Mac时,我试图保持相同的方式而不将我的代码从BOOL更改为bool. 这样的事可以吗? typedef int8_t _Bool; typedef _Bool (BOOL
我知道,bool在C中使用,而BOOL是Microsoft特定类型,定义为int.

我的代码正在使用BOOL,因为它是为Windows开始的,但是当我要将它移植到Mac时,我试图保持相同的方式而不将我的代码从BOOL更改为bool.

这样的事可以吗?

typedef int8_t _Bool;         
    typedef _Bool (BOOL);
    static const BOOL False = 0;
    static const BOOL True = 1;

如果是的话,有更好的方法和原因吗?
如果没有,那么为什么以及我应该做什么呢?

解决方法

由于BOOL被定义为一个int,你不知道在没有检查你移植的某些代码是否依赖于它是一个int.

因此,我会选择以下内容:

#if NOT_MICROSOFT
    typedef int BOOL;
    #define TRUE 1
    #define FALSE 0
#endif

如果您有机会检查您正在移植的代码是否正常工作,无论BOOL类型是真的是int还是真的bool,那么很可能您有机会将其更改为使用bool(或使用int8_t,无论如何)你比较喜欢).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读