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