/* This is a comment { boo } ; foo comment */

/* This is a comment
   BoooO // foooo
   on several *
   lines  foo
*/

#ifdef _cpp
toto { }
#endif

#include <stdio.h>

#define A_CONSTANT 10

#define inflateBackInit(strm, windowBits, window) \
        inflateBackInit_((strm), (windowBits), (window), \
        ZLIB_VERSION, sizeof(z_stream))


typedef struct {
  int x;  /* x param */
  int y;  /* y param */
} struct_t;


typedef enum {
  SDL_AUDIO_STOPPED = 0,
  SDL_AUDIO_PLAYING,
  SDL_AUDIO_PAUSED
} enum_t;

typedef union {
  int a;
  float b;
  struct_t c;
} union_t;


typedef unsigned long my_type;


enum { SDL_NOEVENT = 0,			/* Unused (do not remove) */
       SDL_ACTIVEEVENT,			/* Application loses/gains visibility */
       /* Events SDL_USEREVENT through SDL_MAXEVENTS-1 are for your use */
       SDL_USEREVENT = 24,
       /* This last event is only for bounding internal arrays
	  It is the number of bits in the event mask datatype -- Uint32
       */
       SDL_NUMEVENTS = 32
};


extern int my_var;

extern enum_t my_var_enum ;

extern int my_func (void);

extern char * my_func_string (char * str);

/* an other comment */

extern struct_t * my_div (int px, int py);

extern enum_t
my_func_enum (float f);
			    
extern void
my_func_with_func (int (* callback) (int x, char * str));

