In der C-Standardbibliothek sind einige Makros vordefiniert (Hierbei sind die Unterstriche zu beachten):
| Makro | Aufgabe | Datentyp |
|---|---|---|
| __TIME__ | Ausgabe der aktuellen Zeit. | String |
| __DATE__ | Ausgabe des aktuellen Datums. | String |
| __LINE__ | Ausgabe der Zeilennummer der aktuellen Zeile im Quelltext. | Integer |
| __FILE__ | Name des compilierten Programms. | String |
| __func__ | Ausgabe des Namens der Funktion, in der sich das Makro befindet. | String |
| __STDC__ | Liefert den Wert 1, wenn der Compiler dem Ansi-C-Standard konform ist. | Integer |
| __STD_VERSION__ | Liefert den Wert 199901L (Januar 1990), wenn der Compiler dem C99-Standard entspricht. | String |
Es gibt auch noch betriebssystemspezifische Konstanten:
| Makros | Betriebssystem |
|---|---|
| __unix__ | UNIX |
| __MSDOS__ | MS-Dos |
| _WIN32 | Windows |
| __linux__ | Linux |
| FreeBSD | Free-BSD |
| OpenBSD | Open-BSD |
Um C von C++ zu unterscheiden, ist in C++ „__cplusplus“ definiert.