【c语言】bool类型的定义文件

14 篇文章 0 订阅

测试环境:

(win10下的wsl Ubuntu20.04):
Linux BDJS-PF3SV6WQ 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

bool类型定义的文件stdbool.h:
/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */

#ifndef _STDBOOL_H
#define _STDBOOL_H

#ifndef __cplusplus			// 如果不是c++的环境下,使用_Bool

#define bool	_Bool		// 此处使用了_Bool,
#define true	1
#define false	0

#else /* __cplusplus */

/* Supporting _Bool in C++ is a GCC extension.  */
#define _Bool	bool		// 如果在c++的环境下,将_Bool重新定义为c++的bool

#if __cplusplus < 201103L
/* Defining these macros in C++98 is a GCC extension.  */
#define bool	bool
#define false	false
#define true	true
#endif

#endif /* __cplusplus */

/* Signal that all the definitions are present.  */
#define __bool_true_false_are_defined	1

#endif	/* stdbool.h */

在网上看了一些博客说是,从C99开始为了兼容C和C++,C语言引入了stdbool.h。

但是很多提供C语言接口的供应商,为了避免C语言bool的尴尬出现,鉴于系统的兼容性还是定义了BOOL宏定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值