Xref: utzoo comp.lang.c:6888 comp.lang.misc:987 Path: utzoo!utgpu!water!watmath!clyde!rutgers!rochester!crowl From: crowl@cs.rochester.edu (Lawrence Crowl) Newsgroups: comp.lang.c,comp.lang.misc Subject: Re: Clarifying the C "int" Datatypes Message-ID: <6377@sol.ARPA> Date: 30 Jan 88 04:10:45 GMT References: <6240@sol.ARPA> <10179@ccicpg.UUCP> Reply-To: crowl@cs.rochester.edu (Lawrence Crowl) Organization: U of Rochester, CS Dept, Rochester, NY Lines: 23 In article <10179@ccicpg.UUCP> miket@ccicpg.UUCP (Mike Tracy) writes: >In article <6240@sol.ARPA> crowl@cs.rochester.edu (Lawrence Crowl) writes: >>Since I've noticed some confusion on the C "int" datatypes, I thought I would >>post a clarification. The "int" datatypes are not integers, they are machine >>"words". > >I'll have to disagree with you. Many machines use a 16 bit word while an >'int' is (many times) 32 bits. It has more to do with the natural size >of objects that the system manipulates. ... You have just confirmed my statement. The fact that some C compilers use a word size that is not identical to the bus size of the machine is irrelavent to the point I was making. The crucial difference is this: is the datatype supporting the machine, or is it supporting an abstraction. In C, "int" supports the machine instead of supporting an abstraction. To see this, note that the & operator is meaningless for integers, but not for machine words. The C support for & indicates that it is oriented towards machine words and not towards the integer abstraction. Note that the second you start defining C semantics in terms of bits, you have oriented yourself towards machine words. -- Lawrence Crowl 716-275-9499 University of Rochester crowl@cs.rochester.edu Computer Science Department ...!{allegra,decvax,rutgers}!rochester!crowl Rochester, New York, 14627