On Thu, Dec 8, 2022 at 11:32 AM Tom Lane <[email protected]> wrote: > If we go with "struct Node *" then we can solve such problems by > just repeating "struct Node;" forward-declarations in as many > headers as we have to.
Yes, I think just putting "struct Node;" in as many places as necessary is the way to go. Or even: struct Node; typedef struct Node Node; ....which I think then allows for Node * to be used later. A small problem with typedef struct Something *SomethingElse is that it can get hard to keep track of whether some identifier is a pointer to a struct or just a struct. This doesn't bother me as much as it does some other hackers, from what I gather anyway, but I think we should be pretty judicious in using typedef that way. "SomethingPtr" really has no advantage over "Something *". It is neither shorter nor clearer. -- Robert Haas EDB: http://www.enterprisedb.com
