|
|
  |
Указатели на функции |
|
|
|
Nov 29 2010, 20:40
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543

|
Добрый день уважаемые! У меня сложилась такая ситуация, жил я себе спокойно, программировал 8 битные авр МК, потом перешёл на МСП и стал разбираться с ИАРом и углубляться в язык С, до недавно я на любительском уровне, что-то делал, паял...но захотелось выжимать максимум из языка С и ИАра, изучить их по детальнее...так вот начал я с языка С, узнал, что есть такое понятие как указатели на функции...почитал, ну вроде разобрался...а теперь вот думаю как бы их можно было использовать, разумеется эффективно )...К примеру я пишу программу на какой-нибудь прибор - регулятор температуры...где скажем мне у алгоритме указатели на функции понадобятся или они всё же эффективно используюся только для написания меню...За раннее благодарен.
Также хотел бы уточнить ещё одну вещь, в ИАРе есть тип памяти data16 и data20. Выходит они отличаются разным диапазоном адресов 64кБ(0xFFFF) и 1МБ(0xFFFFF) и соответственно размером указателей (16 и 32 бита).Тип памяти, который я буду использовать завит от железа? Если я объявляю переменную, она буде по умолчанию типа data16? И зачем предвидено эти 2 типа памяти, как я могу использовать data20 для своих удобств?
Сообщение отредактировал Twen - Nov 29 2010, 20:17
|
|
|
|
|
Nov 29 2010, 21:02
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Указатели на функции требуются в основном только там, где сами вызываемые функции должны быть разные при унифицированном обработчике их вызовов. Кроме UI (пользовательский интерфейс/меню) и планировщика ОС такая ситуация может быть возможна, например, при написании функции разбора запроса какого-нибудь сетевого протокола. Сам запрос обрабатывается единообразно, но в зависимости от типа запрошенных данных эти данные могут располагаться где угодно, не обязательно в ОЗУ МК, но и, например, во внешней Flash, SDCard или в другом устройстве, подключенном к данному коммуникационному МК.
|
|
|
|
|
Nov 30 2010, 11:20
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(rezident @ Nov 30 2010, 01:02)  Указатели на функции требуются в основном только там... Позволю себе не согласиться. Я широко использую для организации автомата состояний вместо switch. Хотя современные компиляторы и могут заоптимизировать switch в массив функций, все ж функции нагляднее получаются, да и средствами препроцессора проще править состояния.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|