From c968dc25282b544a4a41e039fca7e4fc6301cdfd Mon Sep 17 00:00:00 2001 From: Yashraj Date: Mon, 24 Nov 2025 19:04:37 +0530 Subject: [PATCH] gh-141004: Document `Py_ARRAY_LENGTH` (GH-141601) (cherry picked from commit e0773eacb7e660b4fd6bd702b0a119e25ab3b012) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Yashraj Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Peter Bierma --- Doc/c-api/intro.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 68ba515b40ce12..6596250afef06c 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -326,6 +326,19 @@ complete listing. PyDoc_VAR(python_doc) = PyDoc_STR("A genus of constricting snakes in the Pythonidae family native " "to the tropics and subtropics of the Eastern Hemisphere."); +.. c:macro:: Py_ARRAY_LENGTH(array) + + Compute the length of a statically allocated C array at compile time. + + The *array* argument must be a C array with a size known at compile time. + Passing an array with an unknown size, such as a heap-allocated array, + will result in a compilation error on some compilers, or otherwise produce + incorrect results. + + This is roughly equivalent to:: + + sizeof(array) / sizeof((array)[0]) + .. _api-objects: