2014-02-10 3 views
0

나는 arduino에 불리언 계산기를 쓰려고합니다. 하지만이 오류가 발생하고 무엇이 잘못되었는지 알 수 없습니다. unqualified-id before '!' token 네 번째 줄이 강조 표시됩니다.'!'앞에 부적합 ID가 있습니다. 토큰

#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. 

} 

내가 볼 수있는 유일한 !는하지() 메소드에서, 그것은 문제가 : 여기 내 코드는?

편집 :로하지() 메소드를 변경 시도 :

if(X) return false; 
else return true; 

그래서 내 코드에는 !가 없지만, 여전히 그 오류를 제공합니다. 세 번째 줄에서 세미콜론을 제거하려고 시도했지만 여전히 오류가 발생하고 4 번째 줄을 강조 표시합니다.이 줄은 정말 이상합니다.

감사합니다.

+0

명시 적으로 작성하려고 했습니까? – user3287648

+0

무엇을 의미합니까? – shoham

답변

1

not은 C++의 예약어이므로 함수 이름으로 사용할 수 없습니다. Reference.

C에서는 이것도 언어에 의해 정의되지만 키워드가 아닌 iso646.h에 정의되어 있습니다.

#define not  ! 

또한 andorxor에 문제가있는 것이다.

+0

고마워,()과() 등의 메소드를 호출 할 수있는 방법이 있습니까? 아니면 이름을 바꾸어야합니까? – shoham

+0

이름을 변경해야합니다. 마치'int' 나'for' 함수의 이름을 지정할 수없는 것처럼 말입니다. – Craig

+0

아, 너무 나빴어. 고마워요. – shoham

관련 문제