Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помощь по тексту 
V
    Опции темы
ЮджинКо
Дата 24.4.2008, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.4.2008

Репутация: нет
Всего: нет



здравствуйте!!!


кто нить мог бы пояснить следующие строки текста???

Код

#define archMaskFB014_Q   (cntFB014_DQ >> 3) + ((cntFB014_DQ % 8)?1:0) + (cntFB014_AQ << 1)
#define archMaskFB014   (cntFB014_DI + cntFB014_AI + cntFB014_DQ + cntFB014_AQ)/8 + (((cntFB014_DI + cntFB014_AI + cntFB014_DQ + cntFB014_AQ) % 8)? 1:0)
void fb014_exec(unsigned char *__di, unsigned int *__ai, unsigned char *__dq, unsigned int *__aq);


Спасибо =)
PM MAIL   Вверх
bronislav
Дата 24.4.2008, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: 2
Всего: 3



Ну это директивы препроцессора.
Перед тем как будет начата работа компилятора, отрабатывает препрецессор, которому и предназначены первые две записи.

Код

#define exp1 expr2

означает, что перед компиляцией все встреченные в тексте программы вхождения exp1 будут заменены на exp2

Или Вам не понятны сами выражения expr2?

Ну тогда рассмотрим подробнее
Все вхождения 
Код

archMaskFB014_Q
 будут заменены на 
Код

(cntFB014_DQ >> 3) + ((cntFB014_DQ % 8)?1:0) + (cntFB014_AQ << 1)


Код

(cntFB014_DQ >> 3)

Провести битовый сдвиг cntFB014_DQ на 3 бита в право

Код

(cntFB014_DQ % 8)?1:0)


Условное выражение проверяющее делится ли cntFB014_DQ без остатка на 8, если делится, то результат выражения 1 иначе 0

Код

(cntFB014_AQ << 1)


Сдвиг в лево на 1 бит

А потом все вышеперечисленное складывается


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
ЮджинКо
Дата 24.4.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.4.2008

Репутация: нет
Всего: нет



Спасибо большое! smile 

не мог понять вот это

Цитата(bronislav @  24.4.2008,  08:08 Найти цитируемый пост)
код C++1:(cntFB014_DQ % 8)?1:0)highlightSyntax('cpp_liNzJm','cpp');highlightSyntax('cpp_liNzJm','cpp');Условное выражение проверяющее делится ли cntFB014_DQ без остатка на 8, если делится, то результат выражения 1 иначе 0


так в остальном разобрался)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.