Could be. But wouldn't then displayln() require the same string placeholder? Be it "%s", or "{1}" or someting else.
[0] https://gist.github.com/shakna-israel/4fd31ee469274aa49f8f97...
printf("%p\n", v);
the Generic call must look like this displayln((const void *)v);
is it really better? void* v;
v = ...;
...
displayln(v);