Vordefinierte Makros

Der Preprozessor liefert standardmässig einige vordefinierte Makros, die in jedem Code zur Verfügung stehen. Je nach System kann jedoch der Umfang der vordefinierten Makros variieren. Hier werden nur die allerwichtigsten aufgeführt.

Standard-Makros

Die Folgenden Makros sollten auf jedem System unter jedem Compiler verfügbar sein.

  • Das Makro __FILE__ gibt den vollständigen Pfad der Datei als String zurück. Hier wird der Übersichtlichkeit wegen auf den Pfad verzichtet. Der Wert dieser Konstante kann mittels der #line-Direktive gesteuert werden.
  • Das Makro __LINE__ gibt die aktuelle Zeilennummer als integrale Konstante zurück. Der Wert dieser Konstante kann mittels der #line-Direktive gesteuert werden.
  • Das Makro __DATE__ gibt das aktuelle Datum als String zurück.
  • Das Makro __TIME__ gibt die aktuelle Zeit als String zurück.

#include <stdio.h> int main(int argc, char** argv){ printf("File: %s\n", __FILE__); printf("Line: %d\n", __LINE__); printf("Date: %s\n", __DATE__); printf("Time: %s\n", __TIME__); return 0; }

File: test.cpp Line: 5 Date: Aug 27 2007 Time: 21:23:48

Variable Parameter

Wenn mittels der #define-Direktive ein Makro mit variabler Anzahl Parameter definiert wird, stellt der Preprozessor diese als ein Makro __VA_ARGS__, zur Verfügung.

#define PRINT(string, ...) printf(string, __VA_ARGS__)