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

 
 
> Вопрос по си для at91sam
sergey sva
сообщение Dec 23 2008, 14:25
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



объясните пожалуйста как это работает :
#define P_EP(n) ((USB_EP_EVENT & (1 << (n))) ? USB_EndPoint##n : NULL)
что такой #define знаю, а вот в первый раз увидел, знак вопроса и вот такую конструкцию :
USB_EndPoint##n : что означает ## и :
И как это будет работать pUDP->UDP_GLBSTATE &= ~AT91C_UDP_FADDEN; вот этот знак ~
Еще не совсем понимаю как вызывается функция ,которая имеет модификатор _inline.
функция с этим модификатором помещается по адресу в флэш, а когда она будет выполнятся ?
и как узнать где она располагается ? Вопросы простые, но если не затруднит объясните пожалуйста.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergey sva
сообщение Dec 23 2008, 14:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



>позволяет из левой и правой части, составить единый текстовый символ

#define P_EP(n) ((USB_EP_EVENT & (1 << (n))) ? USB_EndPoint##n : NULL)

если n = 10; к примеру, то при компиляции ## будет заменено на 10 ?

получится USB_EndPoint10
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Dec 23 2008, 15:11
Сообщение #3


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(sergey sva @ Dec 23 2008, 16:49) *
>позволяет из левой и правой части, составить единый текстовый символ

#define P_EP(n) ((USB_EP_EVENT & (1 << (n))) ? USB_EndPoint##n : NULL)

если n = 10; к примеру, то при компиляции ## будет заменено на 10 ?

получится USB_EndPoint10


Да, в случае если выражение ( USB_EP_EVENT & ( 1 << 10 ) ) отлично от нуля.
Скобки вокруг (USB_EP_EVENT & (1 << (n))) лишние, остальные очень даже не лишние smile.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:49
Рейтинг@Mail.ru


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