The Oracle Developer Studio and GCC compilers can compile in specific modes that conform to different language or operating system standards. These include C and C++ language standards and various POSIX, UNIX, SUS, or XPG standards. These modes have the following effects:
The compiler enables or disables specific syntax that exhibits different behaviors for different language standards.
The compiler enables or disables specific keywords and variant spellings of keywords. For example, __restrict and restrict.
In response to CPP symbols controlled by the compiler, the system headers can either hide or make visible the specific APIs that are a part of the selected language standards or the Operating System standards.