From 223b1056273f5d48d1c0bbfee75be7b82374d4eb Mon Sep 17 00:00:00 2001 From: pryazha Date: Sun, 12 Oct 2025 15:24:30 +0500 Subject: change identation, maybe will change back, add own gl functions loading, and glx example --- examples/macros.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 examples/macros.c (limited to 'examples/macros.c') diff --git a/examples/macros.c b/examples/macros.c new file mode 100644 index 0000000..0e836b0 --- /dev/null +++ b/examples/macros.c @@ -0,0 +1,44 @@ +#include "prb.h" +#include + +struct type { + i32 i32_element; + i16 i16_element; + u8 u8_element; +}; + +#define nodes_count 10 + +struct stack_node { + i32 value; + struct stack_node *next; +}; + +struct stack { + struct stack_node *first; + struct stack_node *last; +}; + +static void print_stack(struct stack s) +{ + for (struct stack_node *node = s.first; node; node = node->next) + printf("%d%s", node->value, ((node->next) ? " -> " : "\n")); +} + +i32 main(void) +{ + u64 offset = offsetof(struct type, u8_element); + assert(offset == 6); + info("offsetof(type_t, u8_element) = %lu", offset); + info("stack:"); + struct stack_node nodes[nodes_count]; + struct stack stack = {0}; + for (i32 i = 0; i < array_count(nodes); ++i) { + struct stack_node *node = nodes + i; + node->value = i; + sllpush(stack.first, stack.last, node); + } + print_stack(stack); + sllpop(stack.first, stack.last); + print_stack(stack); +} -- cgit v1.2.3-70-g09d2