bpo-36254: Fix invalid uses of %d in format strings in C. (GH-12264)

diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c
index b299d48..0b46cee 100644
--- a/Objects/bytesobject.c
+++ b/Objects/bytesobject.c
@@ -1210,7 +1210,7 @@
 
             if (!errors || strcmp(errors, "strict") == 0) {
                 PyErr_Format(PyExc_ValueError,
-                             "invalid \\x escape at position %d",
+                             "invalid \\x escape at position %zd",
                              s - 2 - (end - len));
                 goto failed;
             }
diff --git a/Objects/odictobject.c b/Objects/odictobject.c
index 767eb5f..6c75a42 100644
--- a/Objects/odictobject.c
+++ b/Objects/odictobject.c
@@ -1539,7 +1539,7 @@
     if (len == -1)
         return -1;
     if (len > 1) {
-        const char *msg = "expected at most 1 arguments, got %d";
+        const char *msg = "expected at most 1 arguments, got %zd";
         PyErr_Format(PyExc_TypeError, msg, len);
         return -1;
     }
@@ -2213,7 +2213,7 @@
     assert(args == NULL || PyTuple_Check(args));
     len = (args != NULL) ? PyTuple_GET_SIZE(args) : 0;
     if (len > 1) {
-        const char *msg = "update() takes at most 1 positional argument (%d given)";
+        const char *msg = "update() takes at most 1 positional argument (%zd given)";
         PyErr_Format(PyExc_TypeError, msg, len);
         return NULL;
     }
diff --git a/Objects/structseq.c b/Objects/structseq.c
index 56b06c7..1c37845 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -195,7 +195,7 @@
 
         cname = typ->tp_members[i].name;
         if (cname == NULL) {
-            PyErr_Format(PyExc_SystemError, "In structseq_repr(), member %d name is NULL"
+            PyErr_Format(PyExc_SystemError, "In structseq_repr(), member %zd name is NULL"
                          " for type %.500s", i, typ->tp_name);
             return NULL;
         }