bpo-36594: Fix incorrect use of %p in format strings (GH-12769)

In addition, fix some other minor violations of C99.
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 4d86519e8..eaba583 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1251,7 +1251,7 @@
 }
 void *_PyUnicode_data(void *unicode_raw) {
     PyObject *unicode = _PyObject_CAST(unicode_raw);
-    printf("obj %p\n", unicode);
+    printf("obj %p\n", (void*)unicode);
     printf("compact %d\n", PyUnicode_IS_COMPACT(unicode));
     printf("compact ascii %d\n", PyUnicode_IS_COMPACT_ASCII(unicode));
     printf("ascii op %p\n", ((void*)((PyASCIIObject*)(unicode) + 1)));
@@ -1282,14 +1282,14 @@
 
     if (ascii->wstr == data)
         printf("shared ");
-    printf("wstr=%p", ascii->wstr);
+    printf("wstr=%p", (void *)ascii->wstr);
 
     if (!(ascii->state.ascii == 1 && ascii->state.compact == 1)) {
         printf(" (%" PY_FORMAT_SIZE_T "u), ", compact->wstr_length);
         if (!ascii->state.compact && compact->utf8 == unicode->data.any)
             printf("shared ");
         printf("utf8=%p (%" PY_FORMAT_SIZE_T "u)",
-               compact->utf8, compact->utf8_length);
+               (void *)compact->utf8, compact->utf8_length);
     }
     printf(", data=%p\n", data);
 }