Alex_rav 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба __root const void (*FuncTable)(void) = &Init_LED_WH; ошибка: Error[Pe144]: a value of type "void (*)()" cannot be used to initialize an entity of type "void const (*)()" Компилятор IAR 4.42 Хочется разместить указатель на функцию в встроенном флэше и не зависимо от результатов :a14: :a14: :a14: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Поиском искать пробовали? void fSelfTest(void) {...} typedef void (*VECTORS)(); const VECTORS process[] = { fSelfTest, } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 9 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Если - во флэше (т.е. значение не будет меняться), то зачем указатель заводить вообще? Где это нужно используйте напрямую вызов Init_LED_WH Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_rav 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба 2Палыч: Вообще то задача разместить один указатель не стоит, а стоит задача разместить массив указателей и работать с ним. 2Dog Pawlowa: Спасибо, все заработало, только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 9 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Вообще то задача разместить один указатель не стоит, а стоит задача разместить массив указателей и работать с ним. Так бы и спрашивали... ... только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки. Не совсем... К чему относится "const" в первом и втором случае? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 123 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки.Если вы посмотрите внимательно, то это не то же самое. Вы пытались присвоить указателю на функцию, возвращающую void const указатель на функцию, возвращающую void. Если бы вы написали __root void (*FuncTable)(void) = &Init_LED_WH; или __root void (* const FuncTable)(void) = &Init_LED_WH; то у вас бы получилось то же самое в одну строчку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_rav 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Теперь понятно Спасибо всем ответившим :a14: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться