Rule 4 regarding unsigned long is a horrible example as Windows keeps them as 32 bits on 32/64 bit compiles while UNIXes vary between 32 and 64 bits depending on compile mode making unsigned long a disaster of portability across platforms and bitnesses.<p>Stopped reading at that point as this article doesn’t deal with EBCDIC platform portability either... so overlooks the entire IBM main and minicomputer/OS400 market as well. And I say this as one who writes code on all of the above that does Unicode internally but one still has to interface with the OS.<p>Anyway. There is a LOT more to portability than what is written here.