1/* Copyright 2004, 2008 Bob Proulx <bob@proulx.com> 2Distributed under the two-clause BSD licence; 3see the COPYING file for details. */ 4 5#include <stdio.h> 6#include <stdlib.h> 7 8#if 0 9/* This code is commented out. "#if 0 then" */ 10#else 11/* This code is passed through. "#if 0 else" */ 12#endif 13 14#if 1 15/* This code is passed through. "#if 1 then" */ 16#else 17/* This code is passed through. "#if 1 else" */ 18#endif 19 20#if defined(FOO) || defined(FOOB) 21int foo1() { return 0; } 22#else 23#error FOO or FOOB not defined 24#endif 25 26#if defined(FOOB) || defined(FOO) 27int foo2() { return 0; } 28#else 29#error FOO or FOOB not defined 30#endif 31 32#if defined(FOO) && defined(FOOB) 33int foo3() { return 0; } 34#else 35#error FOO and FOOB not defined 36#endif 37 38#if defined(FOOB) && defined(FOO) 39int foo4() { return 0; } 40#else 41#error FOO and FOOB not defined 42#endif 43 44int main() 45{ 46 foo1(); 47 foo2(); 48 foo3(); 49 foo4(); 50} 51