commit: 79a2edaf1d44e3ba5c60d0ab542baa54dadc802f
parent: f970c99907439d2b1898cd882857813dce561f85
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Tue, 26 Feb 2019 13:28:47 +0100
src/sizeof.c: New file
Yet another one I use to debug or learn about the system
Diffstat:
| A | src/sizeof.c | 47 | +++++++++++++++++++++++++++++++++++++++++++++++ | 
1 file changed, 47 insertions(+), 0 deletions(-)
diff --git a/src/sizeof.c b/src/sizeof.c
@@ -0,0 +1,47 @@
+#if __OpenBSD__
+#include <stdlib.h>
+#else
+#include <bsd/stdlib.h>
+#endif
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+static const char *format   = "sizeof(%s) == %d bytes; %d bits\n";
+static const char *format_m = "sizeof(%s) == %d bytes; %d bits; (MIN:MAX) == (%d:%d)\n";
+
+static void print_size(size_t size, char *type)
+{
+	int c;
+	c = size;
+	printf(format, type, c, c * CHAR_BIT);
+}
+
+int main(void)
+{
+	int c;
+
+	printf("CHAR_BIT == %d\n", CHAR_BIT);
+
+	c = sizeof(int);
+	printf(format_m, "int", c, c * CHAR_BIT, INT_MIN, INT_MAX);
+	c = sizeof(char);
+	printf(format_m, "char", c, c * CHAR_BIT, CHAR_MIN, CHAR_MAX);
+
+	print_size(sizeof(uint8_t), "uint8_t");
+	print_size(sizeof(short), "short");
+	print_size(sizeof(double), "double");
+	print_size(sizeof(long), "long");
+	print_size(sizeof(double long), "double long");
+	print_size(sizeof(long long), "long long");
+	print_size(sizeof(long int), "long int");
+	print_size(sizeof(char[BUFSIZ]), "char[BUFSIZ]");
+	print_size(sizeof(char[256]), "char[256]");
+	print_size(sizeof(char[32]), "char[32]");
+	print_size(sizeof(char[2]), "char[2]");
+	print_size(sizeof('a'), "'a'");
+	print_size(sizeof(arc4random()), "arc4random()");
+
+	return 0;
+}