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 ?我想在一个文件中单独定义,可是有不知怎么办!求助大神!
请问大神:应该如何做然 展开
我的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 ?我想在一个文件中单独定义,可是有不知怎么办!求助大神!
请问大神:应该如何做然 展开
3个回答
展开全部
在WIN平台下我一般使用#pragma once解决重复定义问题,不过好像此句不支持linux,我也没试过.
所以你可以用
#ifdef _ENUM_BOOL
#define _ENUM_BOOL
typedef enum bool {true = 1, false = 0}bool;
#endif
所以你可以用
#ifdef _ENUM_BOOL
#define _ENUM_BOOL
typedef enum bool {true = 1, false = 0}bool;
#endif
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
变量声明时加extern,即可。
追问
extern 好像是声明全局变量或者函数的吧!刚刚是了一下不行的!我想在A.c.B.c中都可是使用bool,请问具体怎么做?
追答
我知道你说的情形,一般在开发中是这样的,单独生成一个global.h来定义全局宏 或者通用结构什么的,来防止这种交叉 编译。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询