Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么(true&;true)会引发错误,而(1&;1)不会&x27;T_C_Logical Operators - Fatal编程技术网

C 为什么(true&;true)会引发错误,而(1&;1)不会&x27;T

C 为什么(true&;true)会引发错误,而(1&;1)不会&x27;T,c,logical-operators,C,Logical Operators,我原以为C将true解释为1,但现在我有了疑问 完整代码(使用GCC 5.1编译): 为什么会发生这种情况? < P> 真< /COD>不是C中的关键字,就像它在C++中一样。 要访问它,您必须#include才能使用C中的true和false宏(它们不是保留字),您需要包含@tadman yes,但两者都是整数,并且因为它们具有可比性吗?只有在您给编译器一个提示的情况下,与包含右头文件一样。@tadman它确实有一个布尔类型。它叫\u Bool。我们需要宏来将其重命名为bool,因为C过去没有

我原以为C将
true
解释为
1
,但现在我有了疑问

完整代码(使用GCC 5.1编译):


为什么会发生这种情况?

< P> <代码>真< /COD>不是C中的关键字,就像它在C++中一样。
要访问它,您必须
#include

才能使用
C
中的
true
false
宏(它们不是保留字),您需要包含@tadman yes,但两者都是整数,并且因为它们具有可比性吗?只有在您给编译器一个提示的情况下,与包含右头文件一样。@tadman它确实有一个布尔类型。它叫
\u Bool
。我们需要宏来将其重命名为
bool
,因为C过去没有布尔类型,人们通常编写宏来伪造它,所以所有的
bool
-东西都被设置为opt-in,以避免冲突。请注意
true
false
bool
可能成为C2x中的关键字。@JonathanLeffler-Yay!等不及了。
if(true && true) // Error: 'true' undeclared (first use in this function)
{
}