1*fb3ef04dSDag-Erling Smørgrav /* Copyright 2004, 2008 Bob Proulx <bob@proulx.com> 2*fb3ef04dSDag-Erling Smørgrav Distributed under the two-clause BSD licence; 3*fb3ef04dSDag-Erling Smørgrav see the COPYING file for details. */ 4*fb3ef04dSDag-Erling Smørgrav 5*fb3ef04dSDag-Erling Smørgrav #include <stdio.h> 6*fb3ef04dSDag-Erling Smørgrav #include <stdlib.h> 7*fb3ef04dSDag-Erling Smørgrav 8*fb3ef04dSDag-Erling Smørgrav #if 0 9*fb3ef04dSDag-Erling Smørgrav /* This code is commented out. "#if 0 then" */ 10*fb3ef04dSDag-Erling Smørgrav #else 11*fb3ef04dSDag-Erling Smørgrav /* This code is passed through. "#if 0 else" */ 12*fb3ef04dSDag-Erling Smørgrav #endif 13*fb3ef04dSDag-Erling Smørgrav 14*fb3ef04dSDag-Erling Smørgrav #if 1 15*fb3ef04dSDag-Erling Smørgrav /* This code is passed through. "#if 1 then" */ 16*fb3ef04dSDag-Erling Smørgrav #else 17*fb3ef04dSDag-Erling Smørgrav /* This code is commented out. "#if 1 else" */ 18*fb3ef04dSDag-Erling Smørgrav #endif 19*fb3ef04dSDag-Erling Smørgrav 20*fb3ef04dSDag-Erling Smørgrav #if FOO foo()21*fb3ef04dSDag-Erling Smørgravint foo() { return 0; } 22*fb3ef04dSDag-Erling Smørgrav #else 23*fb3ef04dSDag-Erling Smørgrav #error FOO not defined 24*fb3ef04dSDag-Erling Smørgrav #endif 25*fb3ef04dSDag-Erling Smørgrav 26*fb3ef04dSDag-Erling Smørgrav #if BAR foo()27*fb3ef04dSDag-Erling Smørgravint foo() { return 0; } 28*fb3ef04dSDag-Erling Smørgrav #elif FOO bar()29*fb3ef04dSDag-Erling Smørgravint bar() { return 0; } 30*fb3ef04dSDag-Erling Smørgrav #else 31*fb3ef04dSDag-Erling Smørgrav #error FOO not defined 32*fb3ef04dSDag-Erling Smørgrav #endif 33*fb3ef04dSDag-Erling Smørgrav main()34*fb3ef04dSDag-Erling Smørgravint main() 35*fb3ef04dSDag-Erling Smørgrav { 36*fb3ef04dSDag-Erling Smørgrav foo(); 37*fb3ef04dSDag-Erling Smørgrav bar(); 38*fb3ef04dSDag-Erling Smørgrav } 39