Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!bywater!arnor!arnor!marc From: marc@marc.watson.ibm.com (Marc Auslander) Newsgroups: comp.arch Subject: 64 bit C Message-ID: Date: 14 Feb 91 13:58:51 GMT Sender: news@arnor.uucp (NNTP News Poster) Distribution: comp.arch Organization: IBM T.J. Watson Research Center, Hawthorne, New York Lines: 28 Making (C) programs 32/64 portable is one of the major costs of 64 bit architectures. The only freedom we have is in deciding what int means for 64 bit C. (Of course, we could have half the world do it each way, but lets not contemplate that!) If sizeof int == 8 in 64 bit systems, then the pseudo-invariant sizeof int == sizeof long == sizeof void* is retained. If sizeof int == 4, then the pseudo-invariant sizeof int == 4 is retained. (To be less tautological, character/int overlays continue to work). It seems hopeless to make sizeof long == 4. The question is - which breaks more code. I believe the right answer is the first - and the introduction of new types which have the same size in all implementations so we can declare our external protocols in a fixed way. Anyone out there for sizeof int == 4? -- Marc Auslander