gcc -D definește o macro care va fi utilizată de preprocesator.
$ gcc -Dname [options] [source files] [-o output file]
$ gcc -Dname=definition [options] [source files] [-o output file]
Scrieți fișierul sursă myfile.c :
// myfile.c
 #include <stdio.h/
  
 void main()
 {
     #ifdef DEBUG    
        printf("Debug run\n");
     #else
        printf("Release run\n");
     #endif
 }
Construiți myfile.c și rulați-l cu DEBUG definit:
$ gcc -D DEBUG myfile.c -o myfile
 $ ./myfile
 Debug run
 $
Sau construiți myfile.c și rulați-l fără DEBUG definit:
$ gcc myfile.c -o myfile
 $ ./myfile
 Release run
 $