Я просматривал какой-то код, когда я впервые наткнулся на квалификатор far
, теперь для меня имеет смысл, почему они использовались. Но с моделью памяти, которую мы используем сегодня, почему они уже существуют? Действительно ли люди используют их на практике, или они просто существуют как безделушка из прошлого?
Какая разница между использованием typedef BOOL near *PBOOL;
и typedef BOOL far *LPBOOL;
?
Можно ли использовать реальный для них? Или я должен просто смотреть в другую сторону.
// WinDef.h ~Line 144
#undef FAR
#undef NEAR
#define FAR far
#define NEAR near
#ifndef CONST
#define CONST const
#endif
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef BOOL near *PBOOL;
typedef BOOL far *LPBOOL;
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
typedef int near *PINT;
typedef int far *LPINT;
typedef WORD near *PWORD;
typedef WORD far *LPWORD;
typedef long far *LPLONG;
typedef DWORD near *PDWORD;
typedef DWORD far *LPDWORD;
typedef void far *LPVOID;
typedef CONST void far *LPCVOID;
РЕДАКТИРОВАТЬ: первый комментарий тоже делает хороший вывод, что это значит сейчас, если far
и near
не определены?
// WinDef.h: Lines 91-91
#define far
#define near