Stafettlek för programmerare
/*
* Stafettlek för programmerare.
*
* Tävligen är väldigt enkel och består av två moment:
*
* A) Bidra med kod för att bygga upp ett framework.
* B) Använd framework:et för skriva originella program.
*
* Reglerna är väldigt enkla
* - man skall enbart använda funktioner/datastrukturer från denna modul.
* - inga funktionsanrop till standardbiblioktet.
* - inga "headers" får inkluderas.
* - inga externa bibliotek.
*
* Tanken är alltså att vi skall sluta upp med en jättestor fil som utgör vårt
* "standardbibliotek" när vi går över till moment (B).
*
* Finns inga krav på att man måste bidra till (A) för att få delta i (B) eller
* att man måste använda en viss stil. Keep it simple, reuse and code(tm).
*
* Språk: C
*
* Senaste versionen av denna fil hittar ni hittar ni på:
*
* http://www.superdupa.com/public/code/swec/
*
* Tips/ideér:
* - implementera memcpy/memset/memmove
* - vi behöver helt klart de vanligaste strängfunktionerna
* - få till lite buffrad output istället för en write_char åt gången
* - matematik funktioner (sin/tan/exp/log)
* - använd stdin/stdout för att komma åt filer under moment (B).
* - implementera lite enkla filformat (t.ex TGA)
*
* Lycka till!
*
* PS. Ni som hänger på #c++.se kan väl försöka få hit lite folk.
*
*/
#define NULL ((void*)0)
/*
*=======================================
* Boilerplate and primitive I/O functions (from support.c)
*=======================================
*/
#define assert(expr) \
do{if(!(expr)){assertion_failed(#expr,__FILE__,__LINE__);}}while(0)
/* Print error message and terminate program execution. */
extern void err_quit(char *fmt, ...);
/* Print developer output. */
extern void trace(char *fmt, ...);
/* Report runtime assertion failure. */
extern void assertion_failed(char *expr, char *file, int line);
/* Returns 0 if char could not be written to stdout. */
extern int write_char(int ch);
/* Returns 1 if the input stream (stdin) has reached end of file. */
extern int is_eof();
/* Returns char value (0-255) or (-1) if read operation from stdin failed. */
extern int read_char();
/* Returns pointer to freshly allocated memoryblock of n bytes. */
extern void *mem_alloc(int num_bytes);
/* Deallocate memory block. */
extern void mem_free(void *p);
/*
*=======================================
* Your contribution here [nick]
*=======================================
*/
/* This comment tell us what myfunc returns. */
void myfunc()
{
}
/*
*=======================================
* Program entrypoint.
*=======================================
*/
#define UNUSED_ARGUMENT(x) ((void)(x))
int main(int argc, char *argv[])
{
UNUSED_ARGUMENT(argc);
UNUSED_ARGUMENT(argv);
return 0;
}