
/*
 * Male uzyteczne funkcje, ktora moga sie przydac niekiedy nawet potem.
 * [c]piotao, 20060108
 */

#ifndef __UTILS__
#define __UTILS__

#include <stdarg.h>
#include <stdio.h>

// Ta funkcja napisze to co przekazano jej w parametrze ale tylko wtedy, gdy
// zdefiniowane bedzie DEBUG. W przeciwnym wypadku NIC nie zrobi.
//
// Jest to przyklad troche bardziej zaawansowanego programowania, gdzie nie
// okresla sie ani rodzaju, ani liczby parametrow, ktore funkcja pobiera, zatem
// musza one byc przetwarzane iteracyjnie. Robia to makra zdefiniowane w module
// stdarg, zatem wystarczy tylko parametry przekazac do printf, a dokladniej do
// vprintf, ktore przyjmuje liste parametrow typu va_list. W sumie niewazne. :)

void print(char *napis, ...){

#	ifdef DEBUG

	va_list ap;          // lista argumentow funkcji
	va_start(ap,napis);  // okreslenie listy argumentow
	vprintf(napis,ap);   // wywolanie printf z lista od razu

#	endif

}

#endif
