所以我有这个简单的函数,它假设返回true或false。 True仅在2%的时间内返回,并且每隔一段时间返回false。但是,每当我尝试编译完整代码时,我都会收到错误消息;
'TRUE'未在此范围内声明C ++
我知道我可以使用int
代替bool
,只使用1
代表true,0
代表false,但我想弄明白为什么会赢“工作。有什么帮助吗?
这是我的功能:
bool Bunny::determineMutant()
{
int rand_num = rand() % 100 + 1; //random num 1-100
if(rand_num == 1 || rand_num == 2) return TRUE;
else return FALSE;
}
答案 0 :(得分:5)
TRUE
和FALSE
通常是associated with the Win32 type BOOL
,也可以是整数1
和0
的宏。由于TRUE
的定义不可用,因此存在实际错误。
对于built in C++ type bool
使用true
和false
。我认为这应该是首选解决方案。
作为旁注,代码可以简化为根据if()
中已经为bool
的条件返回;
return (rand_num == 1 || rand_num == 2);
答案 1 :(得分:1)
C ++中的关键字是小写true
和false
。
全部大写TRUE
和FALSE
通常分别是VC ++中1
和0
的预处理器宏,用于返回type BOOL
。
答案 2 :(得分:1)
这很简单。没有TRUE
或FALSE
,但它们被称为true
或false
。