summaryrefslogtreecommitdiffstats
path: root/src/prelude.h
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2025-07-07 08:44:05 -0400
committerTavian Barnes <tavianator@tavianator.com>2025-07-09 09:00:08 -0400
commita69f4fb067ec22b95741e37efe355fb1106fefd2 (patch)
tree016969ad4c6948ffc42b499cfb5fc3be0d64cfe1 /src/prelude.h
parentefb983406cba85a92573f50cfc94c455422e7d3a (diff)
downloadbfs-a69f4fb067ec22b95741e37efe355fb1106fefd2.tar.xz
prelude: Move countof() here from bfs.h
countof() will likely be in the C2Y standard. Link: https://www.open-std.org/JTC1/SC22/WG14/www/docs/n3469.htm Link: https://thephd.dev/c2y-hitting-the-ground-running
Diffstat (limited to 'src/prelude.h')
-rw-r--r--src/prelude.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/prelude.h b/src/prelude.h
index 3b1c4e5..1663af6 100644
--- a/src/prelude.h
+++ b/src/prelude.h
@@ -88,6 +88,15 @@
#endif // !C23
+// Future C standard backports
+
+/**
+ * Get the length of an array.
+ *
+ * https://www.open-std.org/JTC1/SC22/WG14/www/docs/n3469.htm
+ */
+#define countof(...) (sizeof(__VA_ARGS__) / sizeof(0[__VA_ARGS__]))
+
// Feature detection
// https://clang.llvm.org/docs/LanguageExtensions.html#has-attribute