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

 
 
 
Reply to this topicStart new topic
> Что означает такая конструкция?
espectro
сообщение Jun 21 2010, 13:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 17-02-08
Пользователь №: 35 137



Пытаюсь разобраться с примером мышки то Atmel и не могу понять что означает это присвоение, нигде такого не встречал.


Код
g_b_send_ack_report = (0!=g_hid_mouse_report[0]);
Go to the top of the page
 
+Quote Post
skripach
сообщение Jun 21 2010, 14:03
Сообщение #2


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



g_b_send_ack_report присваивается либо "1" либо "0", в зависимости от истинности выражения в скобках.
Хотя могу ошибаться, в Си новичок.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
baralgin
сообщение Jun 21 2010, 14:05
Сообщение #3


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

Группа: Участник
Сообщений: 92
Регистрация: 23-12-08
Из: Кишинёв
Пользователь №: 42 680



результатом операции "0!=g_hid_mouse_report[0]" будет "да" или "нет" - вот это и присвоится. В развёрнутом виде это:
Код
if( 0 != g_hid_mouse_report[0] )
{
    g_b_send_ack_report = true;
}
else
{
    g_b_send_ack_report = false;
}

если это чистый си, то вместо false и true будет "0" и "не 0" соответственно.
Go to the top of the page
 
+Quote Post
espectro
сообщение Jun 21 2010, 14:10
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 17-02-08
Пользователь №: 35 137



Т.е. это сокращенный вариант от

Код
g_b_send_ack_report = ( (g_hid_mouse_report[0]) !=0)? TRUE : FALSE);

?

Сообщение отредактировал rezident - Jun 21 2010, 15:07
Go to the top of the page
 
+Quote Post
baralgin
сообщение Jun 21 2010, 14:18
Сообщение #5


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

Группа: Участник
Сообщений: 92
Регистрация: 23-12-08
Из: Кишинёв
Пользователь №: 42 680



espectro Ну собственно да. Разве что маленькая мелочь: вы явно задаёте значения TRUE и FALSE(где-то в stdbool.h определены или самостоятельно), а в первом случае это сделает компилятор. Не уверен, что TRUE будет обязательно 1. Но на логике программы это вряд ли отразится.

ps: smile.gif
Код
#define TRUE FALSE //счастливой отладки
Go to the top of the page
 
+Quote Post
espectro
сообщение Jun 21 2010, 14:21
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 17-02-08
Пользователь №: 35 137



baralgin, спасибо.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jun 22 2010, 07:04
Сообщение #7


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
#define TRUE FALSE //счастливой отладки
в оригинале там ещё одно словечко было smile.gif)))))))))))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

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

 


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


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