Newsgroups: comp.lang.c
Path: utzoo!henry
From: henry@zoo.toronto.edu (Henry Spencer)
Subject: Re: What breaks? (was Re: 64 bit longs?)
Message-ID: <1991Jan21.190008.1291@zoo.toronto.edu>
Organization: U of Toronto Zoology
References: <1991Jan15.202123.14223@gjetor.geac.COM> <14890@smoke.brl.mil> <1991Jan18.044948.27943@zoo.toronto.edu> <14896@smoke.brl.mil> <1991Jan21.025706.7152@zoo.toronto.edu> <1991Jan21.113942.24379@watmath.waterloo.edu>
Date: Mon, 21 Jan 1991 19:00:08 GMT

In article <1991Jan21.113942.24379@watmath.waterloo.edu> datangua@watmath.waterloo.edu (David Tanguay) writes:
>|>>There is no portable way to declare a type with *exactly* 32 bits, ...
>|In that case, that machine is going to have real trouble declaring, say,
>|a TCP header structure.
>
>What about 36 bit machines? Or did you really mean "at least" 32 bits,
>and not "exactly"? If the TCP software requires an (non-bitfield) integral
>type of exactly 32 bits then it is the TCP software that is broken.

The TCP header, being part of a network protocol, is defined down to the bit
independently of any specific machine.  Its address fields, for example,
are 32 bits.  Not 31, not 33, and certainly not 36.  32 and only 32.
A machine with a sufficiently weird structure may have trouble declaring
a TCP header using a C struct.  That is the machine's problem.  The 36-bit
machines have a long history of difficulty in dealing with protocols and
devices built around 8/16/32 bit conventions; they cope using various
kludges.
-- 
If the Space Shuttle was the answer,   | Henry Spencer at U of Toronto Zoology
what was the question?                 |  henry@zoo.toronto.edu   utzoo!henry
