tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: UVM typedef struct
On Fri, Jun 19, 2009 at 06:21:02PM +0000, David Holland wrote:
> [...]
> > Historically the real reason for appending "_t" to typedef names is to
> > mark the identifier as being a "type" -- i.e. it's a special identifier
> > that exists in a unique namespace.
>
> Yes, it is a type, but it is a *primitive* type. Non-primitive types
> have been, historically, marked with 'struct' or 'union', and the
> desire to retain this visual distinction is why Unix code does not do
> the "typedef struct { ... } foo" idiom that much other C code does.
>
> Structs and particularly pointers are not used the same way (no matter
> how abstract they are!) and should be tagged, if tagged, with
> something other than _t.
FWIW, in Plan9 for example, a complex, composed type is lexically
identified by a first capital letter ; while primitive types are all
lower case.
So:
typedef struct Tm {} Tm;
This is IMHO sound, since complex, composite type are special,
extensions of the language in some sense.
--
tHIerry Laronde (Alceste) <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
Home |
Main Index |
Thread Index |
Old Index