我正在尝试在arduino中编写一个布尔计算器。但我得到了这个错误,我无法弄清楚出了什么问题:unqualified-id before '!' token
它突出了第4行。这是我的代码:
#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
byte verticalLine[8] = { // Custom character (vertical line), 5 X 7. 1 = pixel on, 0 = pixel off.
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000
};
boolean not(boolean X)
{
return !X;
}
boolean and(boolean A, boolean B)
{
if(A && B) return true;
else return false;
}
boolean or(boolean A, boolean B)
{
if(A || B) return true;
else return false;
}
boolean xor(boolean A, boolean B)
{
return or(and(not(A), B), and(A, not(B));
}
void setup() {
// put your setup code here, to run once:
lcd.begin(16,2);
lcd.print("Hello World!");
lcd.createChar(0, verticalLine);
}
void loop() {
// put your main code here, to run repeatedly:
lcd.setCursor(0, 1); //first character of second row.
lcd.write(0); // writes my custom character.
}
我看到的唯一!
是not()方法,这是一个问题吗?
编辑:我尝试将not()方法更改为:
if(X) return false;
else return true;
所以我的代码中没有!
,但它仍然会出错。
我甚至尝试删除第3行中的分号,但它仍然会出现错误并突出显示第4行,这真的很奇怪......
感谢。
答案 0 :(得分:1)
not
是C ++中的保留字,因此您不能将其用作函数名。 Reference.
在C中,这些也是由语言定义的,而不是在文件iso646.h
中定义的关键字,例如
#define not !
您还应该遇到and
or
xor
。