#include <WProgram.h>
#include <EEPROM.h>
template <class T> int EEPROM_writeAnything(int ee, const T& value)
{
const byte* p = (const byte*)(const void*)&value;
int i;
for (i = 0; i < sizeof(value); i++)
EEPROM.write(ee++, *p++);
return i;
}
template <class T> int EEPROM_readAnything(int ee, T& value)
{
byte* p = (byte*)(void*)&value;
int i;
for (i = 0; i < sizeof(value); i++)
*p++ = EEPROM.read(ee++);
return i;
}
コミュニティの皆様、コードで次のエラーが発生します。
EEPROMAnything.h: 関数 'int EEPROM_writeAnything(int, const T&)':
EEPROMAnything.h:6: エラー: '*' トークンの前に初期化子が
必要です EEPROMAnything.h:9: エラー: 'p' はこのスコープ
EEPROMAnythingで宣言されていません.h: 関数 'int EEPROM_readAnything(int, T&)':
EEPROMAnything.h:15: エラー: 'byte' はこのスコープ
EEPROMAnything で宣言されていません.h:15: エラー: 'p' はこのスコープ
EEPROMAnythingで宣言されていません.h:15: エラー: ')' トークン
EEPROMAnything の前にプライマリ式が必要です.h:15: エラー: 'void' の前にプライマリ式が必要です
このセットに欠けているものがわからない。フィードバックをお待ちしております。
ありがとう