1
0
Fork 0
mirror of https://github.com/tailix/libkernaux.git synced 2024-10-30 11:54:01 -04:00
libkernaux/examples/macro_container_of.c
Alex Kotov febd43c987
Add macro KERNAUX_CONTAINER_OF (#100)
* Add macro KERNAUX_CONTAINER_OF
* Add includes
* Add "examples/macro_container_of"
2022-06-27 14:08:32 +03:00

33 lines
550 B
C

#include <kernaux/macro.h>
#include <assert.h>
struct Foo {
const char *hello;
};
struct Bar {
unsigned char a;
unsigned int b;
struct Foo foo;
unsigned short c;
};
static const struct Bar bar = {
.a = 143,
.b = 820794098,
.foo = {
.hello = "Hello, World!",
},
.c = 10981,
};
void example_main()
{
const struct Bar *const bar_ptr =
KERNAUX_CONTAINER_OF(&bar.foo, struct Bar, foo);
assert(bar_ptr->a == 143);
assert(bar_ptr->b == 820794098);
assert(bar_ptr->c == 10981);
}