Defined symbols

The c89(1) utility defines the following macro symbols to be 1: _POSIX_ and __INTERIX.

The _POSIX_ symbol is a reserved symbol, and should not be used or modified. The cc(1) utility defines the symbols __INTERIX and unix. (The "unix" macro is defined because many application sources that are intended to compile on multiple platforms use this simple macro to call out features found on UNIX systems, as opposed to MS-DOS or Virtual Memory System [VMS].)

By default, c89 passes the /Za option to the Microsoft compiler, which defines __STDC__, unless you specify -N nostdc. By default, the cc utility passes the /Ze option, which enables extensions. The Microsoft compiler does not define __STDC__.