NUMKEYS was size_t due to PAGEHDRSZ; printing unsigned int is simpler.
Instead increase PAGEFILL to long, since it involves a multiply.
Possibly uint32_t or something would be sufficient.
Add C99-required 1st parameter. Disable for for non-gcc. Simplify.
GNU extension #define DPRINTF(<no 1st arg>...) -> GNU ext ,##__VA_ARGS__.
Fix __LINE__ format %ld -> %d.