Closes #21441: Reorder elements in documentation to match actual order in the code
diff --git a/Doc/c-api/buffer.rst b/Doc/c-api/buffer.rst
index f703e9c..a7de37e 100644
--- a/Doc/c-api/buffer.rst
+++ b/Doc/c-api/buffer.rst
@@ -89,6 +89,16 @@
 
 .. c:type:: Py_buffer
 
+   .. c:member:: void \*buf
+
+      A pointer to the start of the logical structure described by the buffer
+      fields. This can be any location within the underlying physical memory
+      block of the exporter. For example, with negative :c:member:`~Py_buffer.strides`
+      the value may point to the end of the memory block.
+
+      For contiguous arrays, the value points to the beginning of the memory
+      block.
+
    .. c:member:: void \*obj
 
       A new reference to the exporting object. The reference is owned by
@@ -101,16 +111,6 @@
       this field is *NULL*. In general, exporting objects MUST NOT
       use this scheme.
 
-   .. c:member:: void \*buf
-
-      A pointer to the start of the logical structure described by the buffer
-      fields. This can be any location within the underlying physical memory
-      block of the exporter. For example, with negative :c:member:`~Py_buffer.strides`
-      the value may point to the end of the memory block.
-
-      For contiguous arrays, the value points to the beginning of the memory
-      block.
-
    .. c:member:: Py_ssize_t len
 
       ``product(shape) * itemsize``. For contiguous arrays, this is the length