Приложение 2. Определения препроцессора для intlib.c
Определение | Комментарий | |||
---|---|---|---|---|
основное | дополнительное | |||
INTER_MSDOS | MSDOS | MS-DOS для реального режима | ||
INTER_DPMI | MSDOS | MS-DOS для защищенного режима | ||
INTER_OS2 | IBM OS/2 | |||
INTER_MSWINDOWS | WIN32, WINDOWS_NT | ОС Windows NT, 2000, XP | ||
INTER_MSWINDOWS | WIN32 | ОС Windows 9x, ME | ||
INTER_MSWINDOWS | WIN32, WINCE, WINDOWS_NT | ОС Windows CE | ||
INTER_MSWINDOWS | WIN16, WIN3XX | ОС Windows 3.x | ||
OS9000 | Microware OS9000 | |||
OS9000 | OS9 | Microware OS9 | ||
VMS | VAX, _VMS_ | VMS или OpenVMS | ||
QNX | QNX, ЗОСРВ «Нейтрино» | |||
QNX | QNX6 | QNX6, ЗОСРВ «Нейтрино» | ||
VXWORKS | VxWorks | |||
OS2000 | VXWORKS | ОС2000 | ||
INTER_NLM | Novell NetWare | |||
UNIX | BSD | ОС семейства BSD FreeBSD, OpenBSD, BSDI и т.п. | ||
UNIX | LINUX | Linux | ||
UNIX | UNIXSCO,SCO | SCO OpenServer | ||
UNIX | SINIX | SINIX | ||
UNIX | UNIXWARE | Novell UnixWare, SCO UnixWare | ||
UNIX | USIX | USIX | ||
UNIX | DIGITAL_UNIX | Digital UNIX, Compaq UNIX, True64 | ||
UNIX | SUN | Solaris | ||
UNIX | AIX | AIX | ||
UNIX | SGI | IRIX | ||
UNIX | MSVS, LINUX | МСВС | ||
UNIX | MSVT, LINUX | МСВТ |
Кроме макросов, определяющих ОС, существуют дополнительные макросы, определяющие особенности ОС.
Имя макроса | Необходимость применения | |
---|---|---|
__64BIT_ARCH__ | В случае 64-битной компиляции (адрес – 8 байт) | |
SUPP_LONGLONG | В случае если ОС поддерживает тип данных long long | |
__UNSIG_CHAR__ | В случае если тип данных char по умолчанию беззнаковый | |
DATA_MSBF | На MSBF архитектурах (например, SPARC) | |
LONG_ALIGN | В случае если архитектура требует выровненный доступ к данным (SPARC, ARM и т.п.) | |
SOCKETS | При работе через Unix Domain Sockets (для всех ОС UNIX) | |
LIN_PTHREAD | В ОС UNIX для сборки многонитевой версии (posix threads) | |
SVR42, SVR4 | Во всех ОС UNIX |
Пример
Трансляция для UNIX BSD.
$ cc -c -DUNIX -DFREEBSD -D_VER_MAX=600 intlib.c