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 passed through. "#if 1 else" */ 18*fb3ef04dSDag-Erling Smørgrav #endif 19*fb3ef04dSDag-Erling Smørgrav 20*fb3ef04dSDag-Erling Smørgrav #if FOOB == 42 foo1()21*fb3ef04dSDag-Erling Smørgravint foo1() { return 0; } 22*fb3ef04dSDag-Erling Smørgrav #else 23*fb3ef04dSDag-Erling Smørgrav #error FOOB not 42 24*fb3ef04dSDag-Erling Smørgrav #endif 25*fb3ef04dSDag-Erling Smørgrav 26*fb3ef04dSDag-Erling Smørgrav #if FOOB != 42 27*fb3ef04dSDag-Erling Smørgrav #error FOO is 2 28*fb3ef04dSDag-Erling Smørgrav #else foo2()29*fb3ef04dSDag-Erling Smørgravint foo2() { return 0; } 30*fb3ef04dSDag-Erling Smørgrav #endif 31*fb3ef04dSDag-Erling Smørgrav 32*fb3ef04dSDag-Erling Smørgrav #if FOOB == 42 || FOO == 1 foo3()33*fb3ef04dSDag-Erling Smørgravintx foo3() { return 0; } 34*fb3ef04dSDag-Erling Smørgrav #else 35*fb3ef04dSDag-Erling Smørgrav #error FOO not 1 or BAR not 1 36*fb3ef04dSDag-Erling Smørgrav #endif 37*fb3ef04dSDag-Erling Smørgrav 38*fb3ef04dSDag-Erling Smørgrav #if FOOB != 42 && FOO != 1 39*fb3ef04dSDag-Erling Smørgrav #error FOOB not 42 and FOO not 1 40*fb3ef04dSDag-Erling Smørgrav #else foo4()41*fb3ef04dSDag-Erling Smørgravint foo4() { return 0; } 42*fb3ef04dSDag-Erling Smørgrav #endif 43*fb3ef04dSDag-Erling Smørgrav 44*fb3ef04dSDag-Erling Smørgrav #if FOOB == 42 || FOO != 1 foo5()45*fb3ef04dSDag-Erling Smørgravint foo5() { return 0; } 46*fb3ef04dSDag-Erling Smørgrav #else 47*fb3ef04dSDag-Erling Smørgrav #error FOOB is 42 or FOO is not 1 48*fb3ef04dSDag-Erling Smørgrav #endif 49*fb3ef04dSDag-Erling Smørgrav 50*fb3ef04dSDag-Erling Smørgrav #if FOO != 1 || FOOB != 42 51*fb3ef04dSDag-Erling Smørgrav #error FOO is 1 or FOOB is 42 52*fb3ef04dSDag-Erling Smørgrav #else foo6()53*fb3ef04dSDag-Erling Smørgravint foo6() { return 0; } 54*fb3ef04dSDag-Erling Smørgrav #endif 55*fb3ef04dSDag-Erling Smørgrav main()56*fb3ef04dSDag-Erling Smørgravint main() 57*fb3ef04dSDag-Erling Smørgrav { 58*fb3ef04dSDag-Erling Smørgrav foo1(); 59*fb3ef04dSDag-Erling Smørgrav foo2(); 60*fb3ef04dSDag-Erling Smørgrav foo3(); 61*fb3ef04dSDag-Erling Smørgrav foo4(); 62*fb3ef04dSDag-Erling Smørgrav foo5(); 63*fb3ef04dSDag-Erling Smørgrav foo6(); 64*fb3ef04dSDag-Erling Smørgrav } 65