Thx a lot for the explanation, it is clear now!

On Fri, Feb 13, 2015 at 8:44 AM, Ben Pfaff <b...@nicira.com> wrote:

> On Thu, Feb 12, 2015 at 11:02:06AM -0800, Alex Wang wrote:
> > > +    struct mac_learning_port *mlport;
> >
> >
> > Simple C question, why don't we need to forward declare the struct
> > 'mac_learning_port'?
>
> Forward declarations are only necessary in one weird C corner case: when
> the first use of the struct tag is in a function parameter.  So:
>         void f(struct foo *);
> requires a forward declaration if this is the first use of struct foo.
> But:
>         struct bar { struct foo *x; };
> or
>         struct foo *f(void);
> doesn't.  It's a weird rule and I wonder whether the C committee thought
> it through properly back in the late 1980s.  Out of curiosity I took a
> quick look through the C standard rationale for a mention of this topic,
> but I don't see one.
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to