Правила | Последние сообщения | темы RSS | Поиск | Регистрация | Войти

Функция Указатели в C



Post new topic Reply to topic EDAboard.com Форум -> PC программирование и взаимодействие -> Функция Указатели в C
Арабская версия Болгарский вариант Каталанский версия Чешская версия Датская версия Немецкая версия Греческая версия Английский вариант Испанская версия Финский вариант Французская версия Hindi версия Хорватский вариант Индонезийская версия Итальянская версия Версия на иврите Японская версия Корейская версия Литовская версия Латвийская версия Голландский вариант Норвежский версия Польская версия Португальский вариант Румынская версия Русская версия Словацкий версия Словенский версия Сербский версия Шведский вариант Тагальский версия Украинская версия Вьетнамская версия На китайском языке
Автор Сообщение
Вишня



Зарегистрирован: 19 июля 2005
Сообщений: 3


Post 25 августа 2005 7:01 Функция Указатели в C

Где и в каких ситуациях мы можем использовать функцию указатели С в Встроенные?

Может ли кто-нибудь объяснить?

Спасибо ..... Cherry
Вернуться к началу
View user's profile
IanP



Зарегистрирован: 05 Окт 2004
Сообщений: 6454
Помогал: 1535
Расположение: Западное побережье


Post 25 августа 2005 7:24 Re: Функция Указатели в C

Цитата:
Указатели на функции, не так, как общий указатель другие виды использования. Тем не менее, одну общую использования в ближний указатели на функции в качестве параметра функции вызова.

http://www.cs.cf.ac.uk/Dave/C/node12.html
Привет,
IanP
Вернуться к началу
View user's profile
echo47



Зарегистрирован: 07 апреля 2002
Сообщений: 4206
Помогали: 566


Post 25 августа 2005 8:13 Функция Указатели в C

Еще одна распространенная заявка функцию обратного вызова. Например, вы хотите Windows для вызова функции аудио рекордер каждый раз, когда Windows получает некоторые образцы от микрофона. Вы даете Windows указатель на аудио рекордер функции.
Вернуться к началу
View user's profile
мат



Зарегистрирован: 26 февраля 2004
Сообщений: 489
Помогали: 35
Место проведения: Сидение для унитаза


Post 25 августа 2005 13:23 Re: Функция Указатели в C

Функция указатели, не часто используется в Embedded C, больше для PC сторону программирования. В основном, это указатель на функцию, и в зависимости от функций, которые указателя точек, можно выполнять различные функции, которые должны выполняться в той же строке кода.

Одним из примеров способ его использования состоит в том, что у вас есть массив указателей функция, которая указывает на сообщение погрузчиков, каждый иной тип сообщения, который предназначен для проведения того же индекса в качестве обработчика сообщений.

Таким образом, вы можете позвонить-то вроде
Код:

fnPtr [MSG-> тип] (MSG);
[/ код]

Добавлено:
Одним из возможных использовать указатели на функции встроенного C, представляет собой задачу планировщика.
Вернуться к началу
View user's profile
njfane



Зарегистрирован: 27 Окт 2004
Сообщений: 15


Post 26 августа 2005 11:00 Re: Функция Указатели в C

это хороший выбор для замены в случае переключения состояния машин с использованием функции указатель,
в случае, когда государственная машина слишком много случаев переключения. это делает программу более компактной.
Вернуться к началу
View user's profile
Bingo600



Зарегистрирован: 26 августа 2004
Сообщений: 239
Помогали: 14


Post 27 августа 2005 14:35 Функция Указатели в C

Это неплохой Dokument по этому вопросу

http://www.newty.de/fpt/zip/e_fpt.pdf

http://www.newty.de/fpt/index.html

/ Бинго
Вернуться к началу
View user's profile
btbass



Зарегистрирован: 20 июля 2001
Сообщений: 1137
Помогали: 106
Место проведения: Оберон


Post 10 сентября 2005 15:21 Re: Функция Указатели в C

Функция указатели являются очень полезными в встраиваемых систем. Как упорядочить переключения заявление. Кроме того, весьма полезным в меню системы. Когда меня выбрали, а индекс functon указатель массива.

Например, каждое государство здесь функция возвращает следующий государственной перейти на.
Распоряжающаяся код целую программу в одну строку!

Код:

/*--- Государство машина функций. ---*/

UI_16 режиме ожидания (недействительными);
UI_16 запуска (недействительными);
UI_16 работает (недействительными);

/*--- State Machine. ---*/

Enum STANDBY = (0, начиная, RUNNING);

/************************************************* ********************
* Функция название: главная
* Описание: Программа отправной точкой.
Инициализировать массив постоянной функцией стрелками.
Инициализировать государственной машины в режиме ожидания.
Запустить государственной машины.

************************************************** *******************/

SI_16 основных (вакуума)
(
UI_16 (* Const Motor_State []) (недействительными) = (режиме, начиная, бег);
UI_16 государство = STANDBY;


для (;;){
Государство = Motor_State [государства] (); / * вызов государственной функции * /
)
)

/*--- Конечного файла. ---*/
Вернуться к началу
View user's profile
raj_rohit10



Зарегистрирован: 14 июля 2004
Сообщений: 113
Помогали: 1


Post 13 сентября 2005 7:19 Re: Функция Указатели в C

привет
наилучшим образом использовать функцию указатель того, что я чувствую это implimentation в FSM и как он сказал erlier 2 один звонок функции.
Вернуться к началу
View user's profile
abhishek_elec



Зарегистрирован: 09 сен 2005
Сообщений: 15
Помогали: 1
Место проведения: Индия


Post 13 сентября 2005 12:42 Re: Функция Указатели в C

Функция указатели являются полезными, если у вас генерализованной процедуры или Algo и у хочу, чтобы использовать эту процедуру на различные типы данных.

За шт., Если у вас хорошая сортировка Algo, и у хотите использовать Algo же по численности, алфавиту, строк или каких-либо данных, регулируются некоторые правила сортировки. В этом случае у вас просто написать различные "Сравнить" функции для каждого типа данных, и в главном сортировку Algo, у передаст функции указателя в качестве аргумента.
Таким образом, те же Algo могут быть использованы различные PPL в соответствии со своими потребностями. Никаких изменений необходимо в основной части Algo.
Вернуться к началу
View user's profile
Google
AdSense





Post 13 сентября 2005 12:42 Объявления



Вернуться к началу
Ясин



Зарегистрирован: 22 января 2006
Сообщений: 9
Помогали: 1


Post 27 августа 2006 9:33 Re: Функция Указатели в C

Я currenlty использовали функцию указателей в моем С проектом, который является меню редактора. Цель диссертации состоит в том, чтобы указатели написать эффективный, компактный и быстрый код. Мой код saple здесь;

INT значение [] = (0x1F00, / / Alt S (^ Setup)
0x1400, / / Alt T (^ Шины)
0x1200, / / Alt E (^ Extensions)
0x1800, / / Alt O (^ оператор)
0x2600, / / Alt L (^ логгинг)
0x1900, / / Alt P (^ Пароли)
0x2200, / / Alt G (Settin ^ GS)
0x2300 / / Alt H (^ Справка)
);

/ / ------ Указатели на функции ---------------------------------
недействительным (* Запустить [8 ])();// Главное меню функций
недействительным (* Настройка [3 ])();// Пункт меню функций
недействительным (* Шины [9 ])();
недействительным (* Расширение [4 ])();
недействительным (* Оператор [3 ])();
недействительным (* логгинг [2 ])();
недействительным (* Пароли [3 ])();
недействительным (* Настройка [6 ])();
недействительным (* Помощь [10 ])();
//------------------------------------------------ ---------------

Main ()
(
....
/ / Инициализация funtion указатели
Запустить [0] = ProcessSetup;
Выполнить [1] = ProcessTrunks;
Выполнить [2] = ProcessExtensions;
Запустить [3] = ProcessOperator;
Запустить [4] = ProcessLogging;
Запустить [5] = ProcessPasswords;
Запустить [6] = ProcessSettings;
Выполнить [7] = ProcessHelp;
......

/ / Читать клавиатуре ...
I = bioskey (1);
если (I) / / Если клавиатура готова ...
ключ = bioskey (0);
еще
продолжать; / / Если клавиатура не готовы затем продолжить его просмотр

/ / Execute меню выбранного пользователем
для (J = 0; J <8; J )
(
если (ключевые == значение [J])
(
если (! InProcess)
(
InProcess = 1;
Выполнить [J] ();
)
)
остальное, если (основные == 0x2D00) / / Alt X нажата ... т.е. Выйдем
возвращение;
)
..........
Вернуться к началу
View user's profile
Post new topic Reply to topic EDAboard.com Форум -> PC программирование и взаимодействие -> Функция Указатели в C
Страница 1 из 1 Часовой пояс: GMT 2 Часы


Пожаловаться | | Администратор | | Модераторы | | Поддержите нас | | карта сайта
Тема RSS