Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | James Kuyper <jameskuyper@verizon.net> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Type interchange |
| Date | 2011-11-30 19:10 -0500 |
| Organization | A noiseless patient Spider |
| Message-ID | <4ED6C5F0.1080608@verizon.net> (permalink) |
| References | <jb68ju$icb$1@speranza.aioe.org> <4ED6AE65.8050901@verizon.net> <lnbortqjpg.fsf@nuthaus.mib.org> |
On 11/30/2011 06:22 PM, Keith Thompson wrote: > James Kuyper <jameskuyper@verizon.net> writes: > [...] >> A function declaration that is not a function prototype, and is used in >> a function call expression with no arguments, can be compatible with a >> function defined as taking no parameters - but only if the return types >> are compatible. Nothing in the standard allows you to assume that 'long' >> and 'int' are compatible types, not even if INT_MAX == LONG_MAX. 'int' >> could be a one's complement type, while 'long' is a 2's complement type. >> 'int' could be little-endian, while 'long' could be big-endian. When >> used as function arguments, 'int' and 'long' values could be passed in >> different registers. > [...] > > The standard defines the term "compatible type". It's clear from > the standard that int and long are *not* compatible types. The standard says that two types are compatible if they're the same. The standard has several locations where it specifies that particular pairs of types that are not the same are still compatible. There are rules for derived types such as arrays, functions, structures, and unions, which allow them to be compatible only if the derivations are sufficiently similar. However, I couldn't find any place in the normative text where it specifies that any particular pair of basic types must be incompatible. Footnote 35 says that char, signed char, and unsigned char are incompatible types, but I can't find supporting normative text. I think that a particular pair of types are in fact compatible for a given implementation, if everything that the standard says must work when two types are compatible, does in fact work for that pair of types, when using that implementation, even if the standard fails to guarantee that those types are compatible. Could you cite any specific requirement that would be violated by an implementation that treated 'int' and 'long' as compatible types?
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Type interchange Edward Rutherford <edward.p.rutherford79@REMOVETHIS.gmail.com> - 2011-11-30 21:53 +0000
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-11-30 17:29 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-11-30 15:22 -0800
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-11-30 19:10 -0500
Re: Type interchange Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-12-01 03:09 +0000
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-01 07:13 -0500
Re: Type interchange Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-12-01 15:55 +0000
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-01 11:28 -0500
Re: Type interchange Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-12-01 16:45 +0000
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-01 12:00 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-01 14:31 -0800
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-01 20:18 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-01 17:35 -0800
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-02 12:03 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-02 13:49 -0800
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-02 22:12 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-03 02:01 -0800
Re: Type interchange Tim Rentsch <txr@alumni.caltech.edu> - 2012-01-25 12:47 -0800
Re: Type interchange pete <pfiland@mindspring.com> - 2011-12-01 11:10 -0500
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-01 11:34 -0500
Re: Type interchange Kaz Kylheku <kaz@kylheku.com> - 2011-12-01 17:48 +0000
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-01 14:17 -0800
Re: Type interchange pete <pfiland@mindspring.com> - 2011-12-01 17:43 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-01 15:00 -0800
Re: Type interchange pete <pfiland@mindspring.com> - 2011-12-01 19:29 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-01 16:59 -0800
Re: Type interchange pete <pfiland@mindspring.com> - 2011-12-02 08:35 -0500
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-02 08:46 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-02 13:32 -0800
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-02 13:30 -0800
Re: Type interchange pete <pfiland@mindspring.com> - 2011-12-02 18:45 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-11-30 19:17 -0800
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-01 06:50 -0500
Re: Type interchange Keith Thompson <kst-u@mib.org> - 2011-12-01 07:15 -0800
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-01 10:36 -0500
Re: Type interchange pete <pfiland@mindspring.com> - 2011-12-01 11:04 -0500
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-01 11:37 -0500
Re: Type interchange Tim Rentsch <txr@alumni.caltech.edu> - 2012-01-25 13:02 -0800
Re: Type interchange Tim Rentsch <txr@alumni.caltech.edu> - 2012-01-25 13:01 -0800
Re: Type interchange Quentin Pope <qp19433@hotmail.NOSPAM.com> - 2011-12-02 22:15 +0000
Re: Type interchange James Kuyper <jameskuyper@verizon.net> - 2011-12-03 11:39 -0500
csiph-web