C语言中bool的定义问题

我在linux的Gcc编译多文件的工程时候发现总是bool出现问题:问题就是重复定义了!我的C文件一共有四个:A.h,A.c,B.h,B.c,main.c我在A.c,B.... 我在linux的Gcc编译多文件的工程时候发现总是bool出现问题:问题就是重复定义了!
我的C文件一共有四个:A.h, A.c, B.h, B.c, main.c
我在A.c, B.c中都要用到bool,因此我我在A.h里面定义了一个bool:
typedef enum bool {true = 1, false = 0}bool;
然后在
A.c中添加# include "A.h"
B.h中添加#include“A.h”
然后我在B.h中定义了一个bool的变量,编译后出错了!我知道是重复定义的问题!请教各位大神:我应该如何定义这个bool ?我想在一个文件中单独定义,可是有不知怎么办!求助大神!
请问大神:应该如何做然
展开
 我来答
金鱼8884
推荐于2016-10-05 · 知道合伙人数码行家
金鱼8884
知道合伙人数码行家
采纳数:124 获赞数:14950
学生

向TA提问 私信TA
展开全部
  C语言是没有bool类型的,C++中才有,不过C99中新增的_Bool关键字可以表示布尔类型。
  可以如下定义:typedef enum {false = 0, true = 1} bool;
  也可以使用关键字bool来定义
  比如:bool bExist = false;
slatop
2013-01-06 · TA获得超过1390个赞
知道小有建树答主
回答量:381
采纳率:100%
帮助的人:430万
展开全部
在WIN平台下我一般使用#pragma once解决重复定义问题,不过好像此句不支持linux,我也没试过.
所以你可以用
#ifdef _ENUM_BOOL
#define _ENUM_BOOL
typedef enum bool {true = 1, false = 0}bool;
#endif
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友288ba2d
2013-01-06 · TA获得超过364个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:271万
展开全部
变量声明时加extern,即可。
追问
extern 好像是声明全局变量或者函数的吧!刚刚是了一下不行的!我想在A.c.B.c中都可是使用bool,请问具体怎么做?
追答
我知道你说的情形,一般在开发中是这样的,单独生成一个global.h来定义全局宏  或者通用结构什么的,来防止这种交叉 编译。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式