Приложение 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 | В ОС Linux, ЗОСРВ Нейтрино для сборки многонитевой версии (posix threads) | |
| SVR42, SVR4 | Во всех ОС UNIX |
Пример
Трансляция для UNIX BSD.
$ cc -c -DUNIX -DFREEBSD -D_VER_MAX=600 intlib.c