Перейти к содержанию
    

Указатель-константа на функцию

:help:

__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:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поиском искать пробовали?

 

void fSelfTest(void) {...}

typedef void (*VECTORS)();

const VECTORS process[] =     
{      fSelfTest,

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если - во флэше (т.е. значение не будет меняться), то зачем указатель заводить вообще? Где это нужно используйте напрямую вызов Init_LED_WH

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2Палыч:

Вообще то задача разместить один указатель не стоит, а стоит задача разместить массив указателей и работать с ним.

 

2Dog Pawlowa:

Спасибо, все заработало, только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще то задача разместить один указатель не стоит, а стоит задача разместить массив указателей и работать с ним.
Так бы и спрашивали...

... только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки.
Не совсем... К чему относится "const" в первом и втором случае?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

только не понятно почему Иар не кушал предыдущее объявление. Ведь это же то же самое только разделенное на две строчки.
Если вы посмотрите внимательно, то это не то же самое. Вы пытались присвоить указателю на функцию, возвращающую void const указатель на функцию, возвращающую void. Если бы вы написали
__root void (*FuncTable)(void) = &Init_LED_WH;

или

__root void (* const FuncTable)(void) = &Init_LED_WH;

то у вас бы получилось то же самое в одну строчку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...