I have found that there is generally a singe type or namespace that takes in any particular enum as a parameter and as a result I have always defined those enums there. Rece
I tend to define them, where their use is evident in the evident. If I have a typedef for a struct that makes use of it for some reason...
typedef enum { HI, GOODBYE } msg_type; typdef struct { msg_type type; union { int hivar; float goodbyevar; } } msg;