Я проходил через какой-то код, когда впервые наткнулся на квалификатор far
, теперь для меня имеет смысл, почему они раньше использовались. Но с моделью памяти, которую мы используем сегодня, почему они уже существуют? Действительно ли люди используют их на практике, или они просто там, как безделушка из прошлого?WinDef.h почему все еще здесь? C++
Какая разница между использованием typedef BOOL near *PBOOL;
и typedef BOOL far *LPBOOL;
?
Есть ли real использовать для этого еще? Или я должен просто смотреть в другую сторону.
// 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;
EDIT: первый комментарий делает хорошую точку тоже, что это означает теперь, если far
и near
определены ни к чему?
// WinDef.h: Lines 91-91
#define far
#define near
Не линии 91-2 (по крайней мере, в v7.1a) также '#define far' и' near' ни к чему? Но ты прав, я сомневаюсь, что они нужны больше. – Rup
Там очень много старого кода. –
Нет причин использовать их, они остаются для обратной совместимости со старым кодом. –