Derive-C
Loading...
Searching...
No Matches
static.c
Go to the documentation of this file.
1
4
5#include <stdint.h>
6#include <stdio.h>
7
9
10#define MAX_CAPACITY 8
11
12#define ITEM unsigned char
13#define INPLACE_CAPACITY MAX_CAPACITY
14#define NAME staticvec_chars
16
18 staticvec_chars vec = staticvec_chars_new();
19
20 // Push characters into the static vector
21 for (unsigned char i = 0; i < MAX_CAPACITY; i++) {
22 staticvec_chars_push(&vec, i);
23 }
24
25 // Cannot push past the in-place capacity
26 ASSERT(!staticvec_chars_try_push(&vec, 8));
27
28 // Check that the first 8 characters are in place
29 for (unsigned char i = 0; i < MAX_CAPACITY; i++) {
30 ASSERT(*staticvec_chars_read(&vec, i) == i);
31 }
32
33 // The next two should be NULL since they exceed the in-place capacity
34 ASSERT(staticvec_chars_try_read(&vec, MAX_CAPACITY) == NULL);
35 ASSERT(staticvec_chars_try_read(&vec, MAX_CAPACITY + 1) == NULL);
36
37 staticvec_chars_delete(&vec);
38}
39
41 staticvec_chars vec = staticvec_chars_new();
42
43 // Push characters into the static vector
44 for (unsigned char i = 0; i < MAX_CAPACITY; i++) {
45 staticvec_chars_push(&vec, 'a' + i);
46 }
47
48 // Iterate over the vector and print the items
49 staticvec_chars_iter_const iter = staticvec_chars_get_iter_const(&vec);
50 unsigned char const* item = NULL;
51 while (item = staticvec_chars_iter_const_next(&iter), item != NULL) {
52 printf("%u ", *item);
53 }
54 printf("\n");
55
56 staticvec_chars_delete(&vec);
57}
58
59int main() {
62}
IV_PAIR const * item
Definition template.h:350
#define ASSERT(expr,...)
Definition macros.h:42
void iter_example()
Definition static.c:40
void push_example()
Definition static.c:17
#define MAX_CAPACITY
Definition static.c:10
int main()
Definition static.c:59