2017-04-30 4 views
1

私はArduinoライブラリを作成しようとしていますが、私がいくつかのスケッチで使用するビルドのために、私はなぜ私が保持しているのか理解できませんでしたこのエラーが発生します。複数のフォーラムを検索しても、何の答えも出てこない。これは私のコードです:'int'の前にunqualified-idが必要です

charLCD.h:

#ifndef charLCD 
#define charLCD 

#include "Arduino.h" 
class charLCD 
{ 
    public: 
    charLCD(int pin1,int pin2,int pin3,int pin4,int enable); 
    void sendChar(unsigned char c); 

    private: 
    int _pin1; 
    int _pin2; 
    int _pin3; 
    int _pin4; 
    int _enable; 



}; 
#endif 

charLCD.cpp:

#include "Arduino.h" 
#include "charLCD.h" 
#include <limits.h> 
charLCD::charLCD(int pin1,int pin2,int pin3,int pin4,int enable) { 
    _pin1 = pin1; 
    _pin2 = pin2; 
    _pin3 = pin3; 
    _pin4 = pin4; 
    _enable = enable; 

} 

void sendChar(unsigned char c) { 
    // Send char to item 
} 


char* chartobin (unsigned char c) 
{ 
    static char bin[CHAR_BIT + 1] = {0}; 
    int i; 

    for (i = CHAR_BIT - 1; i >= 0; i--) 
    { 
     bin[i] = (c % 2) + '0'; 
     c = c/2; 
    } 

    return bin; 
} 

問題は、私は、ヘッダーにコンストラクタを定義するライン上にあります。

+0

'char型のcharLCD :: * chartobin'が間違って見えます。それは 'char * charLCD :: chartobin'ですか?その関数はあなたのヘッダに宣言されていないので確信が持てません( 'return'文で動作しますが) – UnholySheep

+0

' sendChar'を 'charLCD'のメンバとして宣言しましたが、同じ名前の自由な関数を定義します。あなたは 'charLCD :: chartobin'をヘッダに宣言していませんでした – user463035818

+0

どの行にエラーがありますか? – user463035818

答えて

3

#define charLCD 

のこれはあなたのコンパイラが見ているものですので:

class 
{ 
    public: 
    (int pin1,int pin2,int pin3,int pin4,int enable); 
    void sendChar(unsigned char c); 

    private: 
    int _pin1; 
    int _pin2; 
    int _pin3; 
    int _pin4; 
    int _enable 



}; 

::(int pin1,int pin2,int pin3,int pin4,int enable) { 
    _pin1 = pin1; 
    _pin2 = pin2; 
    _pin3 = pin3; 
    _pin4 = pin4; 
    _enable = enable; 

} 

// ... 

は、より良いヘッダーガードを選択します。

はまた、メンバ関数の定義を修飾する必要があります。

void charLCD::sendChar(unsigned char c) { 
    // Send char to item 
} 
+0

私は修正したいくつかの小さな間違いがあったが、それは働いた。 – Michael

関連する問題