Fred Wright said: > You can just use sizeof(). The only caveat is that there's no way > (AFAIK) to apply it to an element of an abstract type, so you need a > concrete instance to apply it to. But the concrete instance can even be > just a pointer, as long as it's a pointer to a complete struct type.
Thanks. That's exactly what I was looking for. Interesting that I didn't think of it. Maybe because I was looking at code that does sizzeof(<type> ). > Resorting to configure tests just to get type sizes is in general a bad > idea, for aforementioned reasons. I'm no fan of #if. This case is an interoperability issue. The man page says long, but the actual implementation can be either 32 or 64 bits on a 32 bit Linux box. The context is the server side of mode6/ntpq. It does a lookup on a name and "prints" the ascii format of that variable. I have a table with name, type, and pointer for each slot and a macro to make a slot for each type. Unless it needs a new type, adding a new name/variable, aka slot in the table, is a 1 line edit. (The old code required edits in 3 separate tables. You couldn't easily do an insert or move a slot.) The struct for the slot has a giant union for the pointer, one for each type. That union does type checking which I consider essential. There are only 5 or 6 of this type of variable. It's probably less code overall if I make special types for each one and that avoids needing to know the size. Thanks for making me think more about this tangle. -- These are my opinions. I hate spam. _______________________________________________ devel mailing list devel@ntpsec.org https://lists.ntpsec.org/mailman/listinfo/devel