Q:

How to truncate address in c

Im writing a hexdump function in C.
How can I truncate a given address (void* start) to the greatest multiple of 16 that's less than the given start argument? 
Is there a simple way to do this?
Thanks

A:

uintptr_t rounded = ((uintptr_t)start) & ~0xF;

