I am trying to declare a struct that is dependent upon another struct.
I want to use sizeof
to be safe/pedantic.
typedef struct _parent
{
float calc ;
char text[255] ;
int used ;
} parent_t ;
Now I want to declare a struct child_t
that has the same size as parent_t.text
.
How can I do this? (Pseudo-code below.)
typedef struct _child
{
char flag ;
char text[sizeof(parent_t.text)] ;
int used ;
} child_t ;
I tried a few different ways with parent_t
and struct _parent
, but my compiler will not accept.
As a trick, this seems to work:
parent_t* dummy ;
typedef struct _child
{
char flag ;
char text[sizeof(dummy->text)] ;
int used ;
} child_t ;
Is it possible to declare child_t
without the use of dummy
?
You can use a preprocessor directive for size as:
and use it in both parent and child.
c++ solution:
sizeof(Type::member) seems to be working as well:
struct.h
has them already defined,so you could,
but, on looking in the header, it appears that this is a BSD thing and not ANSI or POSIX standard. I tried it on a Linux machine and it didn't work; limited usefulness.