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.