91
- jeżeli kompilator jest /godny ze standardem z 1999 makro ma wartość 199901L.
Warto również wspomnieć o identyfikatorze „func.. zdefiniowanym w standardzie C99, którego wartość to nazwa funkcji.
Spróbujmy użyć tych makr w praktyce:
#include <stdio.h>
#if __STDC_VERSION__ >- 199901L
/• Jeżeli mamy do dyspozycji identyfikator __func__ wykorzystajmy go. •/
U define BUG(message) fprintf(stderr, ”%s:%d: 7.8 (w funkcji *4s)\n", \
__FILE , LINĘ , message, func )
tfelse
/* Jeżeli __func__ nie ma no to trudno. */
# define BUG(message) fprintf (stderr, ”%s:%d: */,s\n", \
__FILE , LINĘ , message)
ttendif int main(void) {
printf("Program ABC, data kompilacji: */,s %s\n",__DATĘ__,__TIME__);
BUG("Przykładowy komunikat bledu"); return 0;
Efekt działania programu, gdy kompilowany jest kompilatorem C99:
Program ABC, data kompilacji: Sep 1 2008 19:12:13 test.c:17: Przykładowy komunikat bledu (w funkcji main)
Gdy kompilowany jest kompilatorem ANSI C:
Program ABC, data kompilacji: Sep 1 2008 19:13:16 test.c:17: Przykładowy komunikat bledu