реклама на сайте
подробности

 
 
> Структура функций, В чём преимущество ?
pokk
сообщение Feb 14 2014, 00:34
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 3-07-11
Пользователь №: 66 028



Здравствуйте, есть вот такая хитрая структура (тут мне не совсем понятно что делает union и зачем он там нужен)
CODE

typedef struct __WIZCHIP
{
uint16_t if_mode; ///< host interface mode
uint8_t id[6]; ///< @b WIZCHIP ID such as @b 5100, @b 5200, @b 5500, and so on.
/**
* The set of critical section callback func.
*/
struct _CRIS
{
void (*_enter) (void); ///< crtical section enter
void (*_exit) (void); ///< critial section exit
}CRIS;
/**
* The set of @ref\_WIZCHIP_ select control callback func.
*/
struct _CS
{
void (*_select) (void); ///< @ref \_WIZCHIP_ selected
void (*_deselect)(void); ///< @ref \_WIZCHIP_ deselected
}CS;
/**
* The set of interface IO callback func.
*/
union _IF
{
/**
* For BUS interface IO
*/
struct
{
uint8_t (*_read_byte) (uint32_t AddrSel);
void (*_write_byte) (uint32_t AddrSel, uint8_t wb);
}BUS;
/**
* For SPI interface IO
*/
struct
{
uint8_t (*_read_byte) (void);
void (*_write_byte) (uint8_t wb);
}SPI;
// To be added
//
}IF;
}_WIZCHIP;

Заполнение её (.if_mode .id и др указывают место расположение ? т.е при таком подходе можно их местами менять ? )
Код
_WIZCHIP  WIZCHIP =
      {
      .id                  = _WIZCHIP_ID_,
      .if_mode             = _WIZCHIP_IO_MODE_,
      .CRIS._enter         = wizchip_cris_enter,
      .CRIS._exit          = wizchip_cris_exit,
      .CS._select          = wizchip_cs_select,
      .CS._deselect        = wizchip_cs_deselect,
      .IF.BUS._read_byte   = wizchip_bus_readbyte,
      .IF.BUS._write_byte  = wizchip_bus_writebyte
//    .IF.SPI._read_byte   = wizchip_spi_readbyte,
//    .IF.SPI._write_byte  = wizchip_spi_writebyte
      };

Работа с ней выглядит так
Код
WIZCHIP.CS._select();


т.е получается просто вызывается функция wizchip_cs_select()

Так вот чём преимущество такого подхода WIZCHIP.CS._select(); по сравнению с просто вызовом функции wizchip_cs_select(); ?
И на сколько дольше выполняется первый метод по сравнению со вторым?


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение May 5 2014, 13:56
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Из словаря. Не обязательно обратный вызов.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pokk   Структура функций   Feb 14 2014, 00:34
- - smalcom   >> т.е при таком подходе можно их местами ме...   Feb 14 2014, 10:16
- - _Pasha   Цитата(pokk @ Feb 14 2014, 04:34) Так вот...   Feb 14 2014, 13:57
|- - ar__systems   Цитата(_Pasha @ Feb 14 2014, 08:57) Код с...   Feb 17 2014, 16:36
- - AlexandrY   Цитата(pokk @ Feb 14 2014, 02:34) т.е пол...   Feb 14 2014, 14:14
- - pokk   Спасибо за помощь. Я примерно так и думал только г...   Feb 17 2014, 07:14
- - ViKo   Что такое callback функция? И в Википедии читал, и...   May 3 2014, 09:31
|- - aaarrr   Цитата(ViKo @ May 3 2014, 13:31) Что тако...   May 3 2014, 09:54
||- - ViKo   Цитата(aaarrr @ May 3 2014, 12:54) Это фу...   May 3 2014, 10:07
|- - doom13   Цитата(ViKo @ May 3 2014, 12:31) Что тако...   May 3 2014, 10:41
- - aaarrr   "передача исполняемого кода в качестве одного...   May 3 2014, 10:29
|- - ViKo   Цитата(aaarrr @ May 3 2014, 13:29) Хорошо...   May 3 2014, 10:50
||- - aaarrr   Цитата(ViKo @ May 3 2014, 14:50) В том и ...   May 3 2014, 11:08
||- - A. Fig Lee   Цитата(ViKo @ May 3 2014, 05:50) В том и ...   May 3 2014, 19:47
||- - ViKo   Цитата(A. Fig Lee @ May 3 2014, 22:47) Не...   May 3 2014, 22:01
||- - A. Fig Lee   Цитата(ViKo @ May 3 2014, 17:01) Обратно ...   May 3 2014, 23:10
|- - amaora   Цитата(aaarrr @ May 3 2014, 14:29) Хорошо...   May 5 2014, 18:22
|- - ViKo   Цитата(amaora @ May 5 2014, 21:22) Если г...   May 5 2014, 19:48
|- - amaora   Цитата(ViKo @ May 5 2014, 23:48) А если у...   May 7 2014, 05:21
- - Lagman   Callback функции часто встречаются в API библиотек...   May 3 2014, 10:46
- - ViKo   Handshake? По-моему, вы спекулянт (понятиями).   May 4 2014, 06:13
|- - AHTOXA   По-моему, callback - это просто. Например, есть фу...   May 4 2014, 06:29
|- - A. Fig Lee   Цитата(AHTOXA @ May 4 2014, 01:29) По-мое...   May 4 2014, 13:01
|- - AHTOXA   Цитата(A. Fig Lee @ May 4 2014, 19:01) не...   May 4 2014, 13:09
|- - A. Fig Lee   Цитата(AHTOXA @ May 4 2014, 08:09) Вы что...   May 4 2014, 15:10
|- - AHTOXA   Цитата(A. Fig Lee @ May 4 2014, 21:10) Не...   May 4 2014, 16:56
|- - A. Fig Lee   Цитата(AHTOXA @ May 4 2014, 11:56) Ага. Б...   May 4 2014, 18:36
- - ViKo   Что есть "обратный вызов"? По-моему, это...   May 4 2014, 18:19
|- - Tiro   Цитата(ViKo @ May 4 2014, 21:19) Что есть...   May 4 2014, 18:58
- - AHTOXA   Цитата(ViKo @ May 5 2014, 00:19) Что есть...   May 4 2014, 18:43
|- - ViKo   Цитата(AHTOXA @ May 4 2014, 21:43) Нормал...   May 4 2014, 18:55
||- - AHTOXA   Цитата(ViKo @ May 5 2014, 00:55) По-вашем...   May 4 2014, 19:48
||- - GetSmart   Цитата(AHTOXA @ May 5 2014, 01:48) Что ка...   May 5 2014, 19:22
|- - A. Fig Lee   Цитата(AHTOXA @ May 4 2014, 13:43) Ну хва...   May 4 2014, 23:54
|- - AHTOXA   Цитата(A. Fig Lee @ May 5 2014, 05:54) Ca...   May 5 2014, 05:26
|- - A. Fig Lee   Цитата(AHTOXA @ May 5 2014, 00:26) Неверн...   May 5 2014, 12:45
|- - AHTOXA   Цитата(A. Fig Lee @ May 5 2014, 18:45) Не...   May 5 2014, 16:58
|- - A. Fig Lee   Цитата(AHTOXA @ May 5 2014, 11:58) Если е...   May 5 2014, 19:35
- - ViKo   То есть, события, асинхронность - не при чем? Прос...   May 4 2014, 19:06
|- - Tiro   Цитата(ViKo @ May 4 2014, 22:06) То есть,...   May 4 2014, 19:10
|- - ViKo   Цитата(Tiro @ May 4 2014, 22:10) Вот у Ва...   May 4 2014, 19:17
|- - Tiro   Цитата(ViKo @ May 4 2014, 22:17) Возникло...   May 4 2014, 19:38
- - XVR   2 ТС - вы смешали в одну кучу назначение callback...   May 5 2014, 11:38
|- - ViKo   Цитата(XVR @ May 5 2014, 14:38) 2 ТС - вы...   May 5 2014, 12:12
|- - XVR   Цитата(ViKo @ May 5 2014, 16:12) Дайте уж...   May 5 2014, 13:39
|- - A. Fig Lee   Цитата(ViKo @ May 5 2014, 08:56) Из слова...   May 5 2014, 15:42
- - XVR   Если из 'словаря', то это вариант 'д...   May 5 2014, 14:14
|- - ViKo   Цитата(XVR @ May 5 2014, 17:14) Если из ...   May 5 2014, 18:00
|- - XVR   Цитата(ViKo @ May 5 2014, 22:00) А мне по...   May 6 2014, 07:30
- - AHTOXA   Цитата(GetSmart @ May 6 2014, 01:22) А чт...   May 5 2014, 20:24
|- - ViKo   Цитата(AHTOXA @ May 5 2014, 23:24) Это та...   May 5 2014, 20:31
|- - GetSmart   Цитата(AHTOXA @ May 6 2014, 02:24) Это не...   May 5 2014, 20:37
- - AHTOXA   Цитата(ViKo @ May 6 2014, 02:31) А разве ...   May 5 2014, 21:59
|- - A. Fig Lee   Цитата(AHTOXA @ May 5 2014, 16:59) Вы не ...   May 5 2014, 22:48
|- - GetSmart   Цитата(A. Fig Lee @ May 6 2014, 04:48) Ес...   May 7 2014, 10:53
|- - AHTOXA   Цитата(GetSmart @ May 7 2014, 16:53) Голо...   May 7 2014, 11:40
||- - GetSmart   Цитата(AHTOXA @ May 7 2014, 17:40) Да, эт...   May 7 2014, 13:17
||- - AHTOXA   Цитата(GetSmart @ May 7 2014, 19:17) Как ...   May 7 2014, 18:28
||- - ViKo   Цитата(AHTOXA @ May 7 2014, 21:28) Это по...   May 7 2014, 18:37
|||- - AHTOXA   Цитата(ViKo @ May 8 2014, 00:37) Переведи...   May 7 2014, 19:16
|||- - ViKo   Цитата(AHTOXA @ May 7 2014, 22:16) Второй...   May 7 2014, 20:11
|||- - A. Fig Lee   Цитата(AHTOXA @ May 7 2014, 14:16) Очень ...   May 7 2014, 22:16
||- - GetSmart   Цитата(AHTOXA @ May 8 2014, 00:28) Мне не...   May 8 2014, 02:40
||- - dxp   QUOTE (AHTOXA @ May 8 2014, 01:28) Поняти...   May 10 2014, 14:40
|- - A. Fig Lee   Цитата(GetSmart @ May 7 2014, 05:53) Голо...   May 7 2014, 13:30
||- - GetSmart   Цитата(A. Fig Lee @ May 7 2014, 19:30) Вс...   May 7 2014, 13:40
|- - amaora   Цитата(GetSmart @ May 7 2014, 14:53) Драй...   May 7 2014, 16:39
- - AHTOXA   Цитата(ViKo @ May 8 2014, 02:11) Первый в...   May 8 2014, 08:08


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01448 секунд с 7
ELECTRONIX ©2004-2016