Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Все о том же(тоесть о заголовочных файлах)  (Прочитано 7019 раз)
0 Пользователей и 1 Гость смотрят эту тему.
NBPNBP
Интересующийся

es
Offline Offline

« : 10-07-2012 22:17 » 

Здраствуйте! Спасибо, со структурами Вы (RXL,Dimka,Вад) помогли мне разобраться. Но я существо надоедливое и так просто не отстану!  Отлично А по сему, раз уж зашел разговор о заголовочных файлах, то у меня еще два небольших вопросика:

1.В заг. файле WinBase.h есть такая строка -
 
        #define DefineHandleTable(w)            ((w),TRUE)
 
Вопрос - что бы это значило? А самое главное - причем сдесь "TRUE"?

2.Опять-таки в заг. файле (кажется в WinDef.h) есть такое:

       #define far
       #define near
        .
        .
       typedef BOOL near           *PBOOL;
       typedef BOOL far            *LPBOOL;

Обясните пожалуйста зачем определять far и near как "пустое место"(свято место пусто не бывает!) (или как пробел?) и зачем потом вставлять в typedef это "пустое место" между BOOL и  *PBOOL?  И еще : почему в первом typedef  вставлено near, а во втором - far и какая между ними разница?

Ну вот, а говорил два вопроса ...  До чего же заковыристо написаны эти заглавники! Нельзя ли было как-нибудь попроще?(Это уже не вопрос, а так, замечание!).
Зараниее большое спасибо!

Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 11-07-2012 03:23 » 

Это вопрос не про заголовочные файлы Улыбаюсь А про макросы Улыбаюсь
1)  Если где нибудь встретится в тексте программы  DefineHandleTable(w) То предкомпилятор заменит его на (w, TRUE). TRUE скорре всего также определен макросом.

2) near и far это из прошлого. Когда еше ближний и дальний прыжок в программе были актуальны. Поскольку сушествовало 2 типа смешениий. Ближний в пределах 128 байт и дальний больше чем 128 байт. Чтобы это понять до конца, нужно расказывать азы ассемблера для x86 процессоров. Сейчас это не актуально, поэтому макросы пустые.
PBOOL и LPBOOL также макросы. Не мешало бы посмотреть в интернете, что такое Венгерская нотация.
« Последнее редактирование: 11-07-2012 03:26 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 11-07-2012 03:57 » 

NBPNBP, если есть желание изучать, поищи в инете самоучители - у тебя уж совсем элементарные вопросы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
darkelf
Молодой специалист

nl
Offline Offline

« Ответ #3 : 11-07-2012 05:33 » 

2) near и far это из прошлого. Когда еше ближний и дальний прыжок в программе были актуальны. Поскольку сушествовало 2 типа смешениий. Ближний в пределах 128 байт и дальний больше чем 128 байт. Чтобы это понять до конца, нужно расказывать азы ассемблера для x86 процессоров.
Не совсем. far - это дальный указатель формата сегмент:смещение (20-ти битный адрес с учётом сегментирования реального режима x86), а near - ближний - в текущем сегменте (16-ти битное смещение). Скорее всего осталось для совместимости с win16 и win32s, где это было актуально.
Записан
NBPNBP
Интересующийся

es
Offline Offline

« Ответ #4 : 11-07-2012 13:11 » 

 Отлично
NBPNBP, если есть желание изучать, поищи в инете самоучители - у тебя уж совсем элементарные вопросы.

Так ведь и раздел называется "Для начинающих"! Или у вас на форуме есть раздел " Для еще не начавших"? Самоучители я конечно с интернета скачал, так там примеры еще элементарнее чем мои вопросы. Ну да ладно, как-нибудь разберемся! Буду работать над повышением сложности вопросов!   Отлично А вообще - спасибо за помощь!
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 11-07-2012 18:53 » new

Да не, никто тебя не ограничивает. Просто на пару вопросов "ни о чем" терпения может и хватит, а потом ответом будет тишина. Если займешься системным изучением вопроса, шансов пообщаться на тему будет куда больше.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines