>> Unless POSIX was stupid enough to mandate that all-bits-0 is nil for >> any pointer type and something well-defined for floating-point. > The former is definetely true. (Or will be.)
Sad. Well, their mistake. > And i think on the TZ list it just came up it is generally true for > all "modern" machines. Oh, it is, it is, especially since the current definition of "modern" seems to be "Linux/x86_64". :-รพ Portability is not - or at least in my opinion should not be - about "does it run on most machines now" but "will it run on tomorrow's weird new machine". This is why I don't generate/parse wire protocol by overlaying structs onto octet streams. This is why I don't bzero structs with pointers and floats, even though every machine I either use now or expect to use uses all-0-bits for nil pointers and zero floats. I want my code to be an instance of "What did you have to do to port it to the new system?" "We typed `make'.". Of course, it's not quite that simple in full generality. But that's the aspect that I see as relevant to this thread. /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML mo...@rodents-montreal.org / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B