powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что означает char FAR *szStr?
5 сообщений из 5, страница 1 из 1
Что означает char FAR *szStr?
    #39608093
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем разница между char *szStr и char FAR *szStr на Windows 32, 64 ?
На Маке?
...
Рейтинг: 0 / 0
Что означает char FAR *szStr?
    #39608106
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю это наследие прошлого, очень далекого прошлого. Нынче никакой разницы.
...
Рейтинг: 0 / 0
Что означает char FAR *szStr?
    #39608127
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинВ чем разница между char *szStr и char FAR *szStr на Windows 32, 64 ?
На Маке?Может быть ни в чем. Может быть в чем-то...

Когда-то, было нужно указывать как вызывается функция (или идет доступ к переменным) - через ближние или дальние адреса. Это очень сильно зависит от используемого компилятора, операционной системы, процессора, режима памяти и тд и тп... Поэтому там где заранее знали что делают библиотечную функцию (или такого было требование платформы) могли принудительно затребовать от компилятора использовать ближние или дальние адреса (NEAR / FAR). Подробнее читай учебники по ОС и системам с сегментирвоанной памятью (например Таненбаум хорошо все рассказывает).
Так что с формальной точки зрения, в твоем случае ты либо оставляешь тип адреса переменной на волю компилятора, либо требуешь чтобы к переменной обращались по полному адресу.

А насколько это все работает в твоем случае... Запусти компилятор с нужным ключом чтобы оно остановилось после препроцессора (для gcc/g++ это -E , для cl это /E , что для твоего компилятора сам ищи). Тогда компилятор сделает тебе один большой файл со включением всех include файлов, расшифровкой всех define. И там увидишь во что FAR превращается в реальности.
...
Рейтинг: 0 / 0
Что означает char FAR *szStr?
    #39608131
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlРолг ХупинВ чем разница между char *szStr и char FAR *szStr на Windows 32, 64 ?
На Маке?Может быть ни в чем. Может быть в чем-то...

Когда-то, было нужно указывать как вызывается функция (или идет доступ к переменным) - через ближние или дальние адреса. Это очень сильно зависит от используемого компилятора, операционной системы, процессора, режима памяти и тд и тп... Поэтому там где заранее знали что делают библиотечную функцию (или такого было требование платформы) могли принудительно затребовать от компилятора использовать ближние или дальние адреса (NEAR / FAR). Подробнее читай учебники по ОС и системам с сегментирвоанной памятью (например Таненбаум хорошо все рассказывает).
Так что с формальной точки зрения, в твоем случае ты либо оставляешь тип адреса переменной на волю компилятора, либо требуешь чтобы к переменной обращались по полному адресу.

А насколько это все работает в твоем случае... Запусти компилятор с нужным ключом чтобы оно остановилось после препроцессора (для gcc/g++ это -E , для cl это /E , что для твоего компилятора сам ищи). Тогда компилятор сделает тебе один большой файл со включением всех include файлов, расшифровкой всех define. И там увидишь во что FAR превращается в реальности.

Похоже, что на Windows он определен как
#define far
...
#define FAR far


Непонятно, что на Маке.
...
Рейтинг: 0 / 0
Что означает char FAR *szStr?
    #39608135
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забей и забудь. Не надо никаких far, т.к. нынче плоска модель памяти хоть 32, хоть 64
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что означает char FAR *szStr?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]