Глюк IDE или я затупил? Объявление массива

Iwan73
Offline
Зарегистрирован: 02.11.2013

Скетч раскидан по разным файлам .ino так как функций много и в поисках глюка так было проще изначально. Стал скидывать отлаженные функции в один файл,что бы уменьшить количество закладочек и тут  началось, посыпались ошибки что не объявлены массивы, они сложены в отдельный файл с расширением  .ino . Но этот файл и массивы не трогал вообще.

const char* const fileNames[]PROGMEM = {
бла
бла
бла
};
const char* const StringNames[]PROGMEM = {
бла
бла
ьла
};
const static byte configsLimit[]PROGMEM = {xxxx};
static const char fileStruct[FILENUMB * FILEREW] PROGMEM =
{
бла
бла
бла
};

В заголовочном файле (перед

void setup()

) объявены были 2 массива так

extern const char* const StringNames[];
extern const char* const fileNames[];

и все прекрасно компилилось и заливалось ,но вот после перемещения функций жалуется на необъявленный массив fileStruct[FILENUMB * FILEREW], вписываю в заголовочный файл 

extern static const char fileStruct[FILENUMB * FILEREW];
extern const static byte configsLimit[];

и теперь посыпались ошибки на противоречие спецификаторов в объявлении 'fileStruct'

подскажите что делать? Что ему еще надо?  И как проверить что массивы действительно лежат в PROGMEM? 

 

 

Iwan73
Offline
Зарегистрирован: 02.11.2013

IDE 1.6.7 стоит

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

extern и static несовместимы. static используется для объявления чего то, что видно только в файле, где оно объявлено. Если объявление и использование в разных файлах, тогда только без static.

Iwan73
Offline
Зарегистрирован: 02.11.2013

Спасибо, помогли. Будем дальше учиться..на собственных ошибках