added a cast to uintptr_t, since we're (pretty) certain that both array
pointers point to the same array.
Other than that, made the shader initialization code more consise
removed function definitions and opted for using macros instead.
It now does not have a set limit when it comes to printing (at least,
it's the stdc's limit again). However, it is now no longer possible to
use a character pointer to print information to the screen.