У меня есть простой класс с различными статическими элементами.Пока я не вызываю sprintf, все компилируется хорошо.Когда sprintf включен (рядом с последней строкой), возникает нестатическая ошибка члена.
Это мой первый набег на c ++;Остальные 500 строк кода компилируются.У меня есть несколько классов со статическими элементами.
Не уверен, как это убрать.
class RTCClock {
private:
static unsigned long lastMillisCheck;
static RTC_DS1307 rtc;
const char daysOfTheWeek[7][12] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
static bool isInitialized(bool setInitialized) {
bool isInitialized = true;
int initAddress = 55; // use last vram entry
int initializedValue = 0xAF;
int initState = rtc.readnvram(initAddress);
if (initState != initializedValue) {
if (setInitialized) {
rtc.writenvram(initAddress, initializedValue);
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
else {
isInitialized = false;
}
}
return isInitialized;
}
public:
static void Init() {
isInitialized(true);
}
static char* GetDateTime() {
char dtString[16];
DateTime dt = rtc.now();
char prototype[] = "%d/%d-%d:%d:%d";
sprintf(dtString, prototype, dt.month, dt.day, dt.hour, dt.minute, dt.second);
return dtString;
}
};