With these elements you are only allowed to give non-const pointers to read or write inside private field.
In order to truly apply this to const pointers (no casting etc.) you will need another get_struct_field() function but defined as this.
This will work but it is ugly. Here _Generic keyword allows you to write these functions but use them with a common name. Such as get_struct_field(). And that would be something like this: