So A is a structure defined elsewhere. You may ignore the order in which the variables are defined here. Here, when I use 'B' to define a new variable, what exactly is happening? Is it creating a variable which is a pointer to a structure of type A? I would like as detailed an explanation as possible for what happens when 'typedef struct A *B;' is encountered. Thanks.
typedef struct A *B;
typedef struct {
B pd_ctx;
} C;
static inline B convert (B handle)
{
C *ctx;
ctx = (C *)handle;
return (ctx->pd_ctx);
}
typedef struct A *B;
when I use 'B' to define a new variable, what exactly is happening? Is it creating a variable which is a pointer to a structure of type A?
Yes. It may be clearer if you look at it like this:
typedef struct A* B;
Where the asterisk goes is a matter of style, as with parameters and declarations.
In this case B is not a pointer, it's a pointer type.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With