/* ehdollinenkaannos.c  SJ */

#include <stdio.h>
#include <limits.h>

#if vakiolauseke
/* tämä osa otetaan mukaan (käännetään)
   vain jos vakiolauseke on tosi */
#endif

#ifdef tunnus
/* tämä osa otetaan mukaan vain jos tunnus
   on määritelty */
/* ifdef on lyhenne if defined :stä */
#endif

#ifndef tunnus
/* tämä osa otetaan mukaan vain jollei tunnus
   ole määritelty */
/* ifndef on lyhenne if not defined :stä */
#endif

#if lauseke
/* tai #ifdef tai #ifndef */
#elif lauseke2
/* ... */
#else
/* ... */
#endif

#ifndef NEW

void *omamalloc(size_t n);
#define NEW(tyyppi) ...
#define NEWN(tyyppi, N) ...

#endif

#ifdef UNIX
/* tee kuten unixissa, esim system() */
#elif defined MSDOS
/* tee sama asia siten, että se toimii MS-DOS:ssa */
#else
/* jätä tekemättä, tai tee yksinkertaisesti */
#endif

#define MAXLUKU 100000L

#if INT_MAX >= MAXLUKU
typedef int Integer;
#else
typedef long Integer;
#endif

Integer omamuuttuja;

int omarutiini(int a)
{
	int r;
#ifdef DEBUG
	printf("Kutsuttiin funktiota omarutiini \
arvolla %d\n", a);
#endif

	/* ... */

#if DEBUG > 1
	printf("Funktio omarutiini palauttaa \
arvon %d", r);
#endif
	return r;
}


main() { }
