Fix -pedantic in printf %p

GCC complains (with -pedantic) that the following is
illegal:

    int *x = ...;
    printf("%p", x);

Although x can implicitly be casted to a void pointer
(expeted by %p), the call is technically undefined behaviour
[1].

Work around the warning by casting everything to a void
pointer.

[1] https://code.google.com/p/sparsehash/issues/detail?id=94
Kill 'empty struct' warning

`__extension__ struct` in Clang and GCC in C source allows
the struct to be empty, suppressing the warning.