This macro abstracts calculating how many items there are in an array.

Since recent versions of GCC and Clang provide a warning if we pass a
pointer to the construct in this macro, it is safe to use without any
further checks that the argument is an array.

Link: <https://stackoverflow.com/a/57537491>
Cc: Andrew Clayton <a.clay...@nginx.com>
Cc: Zhidao Hong <z.h...@f5.com>
Signed-off-by: Alejandro Colomar <a...@nginx.com>
---
 src/core/ngx_core.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/core/ngx_core.h b/src/core/ngx_core.h
index 7ecdca0c..bbca2df2 100644
--- a/src/core/ngx_core.h
+++ b/src/core/ngx_core.h
@@ -102,6 +102,9 @@ typedef void (*ngx_connection_handler_pt)(ngx_connection_t 
*c);
 #define ngx_max(val1, val2)  ((val1 < val2) ? (val2) : (val1))
 #define ngx_min(val1, val2)  ((val1 > val2) ? (val2) : (val1))
 
+#define ngx_nitems(arr)      (sizeof((arr)) / sizeof((arr)[0]))
+
+
 void ngx_cpuinfo(void);
 
 #if (NGX_HAVE_OPENAT)
-- 
2.37.2

_______________________________________________
nginx-devel mailing list -- nginx-devel@nginx.org
To unsubscribe send an email to nginx-devel-le...@nginx.org

Reply via email to