Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Register storage type |
| Date | 2011-05-13 15:50 -0700 |
| Organization | None to speak of |
| Message-ID | <ln1v02i5az.fsf@nuthaus.mib.org> (permalink) |
| References | (1 earlier) <OeGdnRorOK1J11HQnZ2dnUVZ_gSdnZ2d@bestweb.net> <iqhiie$g5j$1@speranza.aioe.org> <lnaaerk3sg.fsf@nuthaus.mib.org> <_ZednX81cqTb9VDQnZ2dnUVZ_s-dnZ2d@bestweb.net> <iqk7t1$u3f$1@speranza.aioe.org> |
Free Willy <nospam@nospam.com> writes:
> Kenneth Brody writes:
>> On 5/12/2011 5:27 PM, Keith Thompson wrote:
>>> Free Willy<nospam@nospam.com> writes:
>> [...]
>>>> Another question is array variables declared as register type - could
>>>> the compiler put a small array say of 3 elements into different
>>>> registers and translate array accesses to the right register?
>>>
>>> If you declare an array variable as "register", you can't take its
>>> address. Since array indexing is defined in terms of addresses, such
>>> an array variable is pretty much useless.
>>
>> And can lead to some "interesting" errors:
>>
>> ...
>> register int foo[3];
>> foo[0] = 1;
>> ...
>>
>> This causes the error "'&' on register variable".
>>
>> (Yes, I know _why_ it says that, but it is a bit unexpected at first
>> glance.)
>>
>> [...]
>
> This is interesting, I usually use g++ which compiles the code without
> any warnings, but gcc throws a compile error!
Always remember that C and C++ are two different languages. The C++
semantics for "register" differ from the C semantics.
<OT>
C++ 2003 7.1.1p3:
A register specifier has the same semantics as an auto specifier
together with a hint to the implementation that the object so
declared will be heavily used. [Note: the hint can be ignored
and in most implementations it will be ignored if the address
of the object is taken. —end note]
</OT>
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Register storage type Free Willy <nospam@nospam.com> - 2011-05-12 20:55 +0000
Re: Register storage type Kenneth Brody <kenbrody@spamcop.net> - 2011-05-12 17:02 -0400
Re: Register storage type Free Willy <nospam@nospam.com> - 2011-05-12 21:13 +0000
Re: Register storage type Angel <angel+news@spamcop.net> - 2011-05-12 21:20 +0000
Re: Register storage type Keith Thompson <kst-u@mib.org> - 2011-05-12 14:27 -0700
Re: Register storage type Kenneth Brody <kenbrody@spamcop.net> - 2011-05-13 13:20 -0400
Re: Register storage type Free Willy <nospam@nospam.com> - 2011-05-13 21:30 +0000
Re: Register storage type Keith Thompson <kst-u@mib.org> - 2011-05-13 15:50 -0700
Different languages (Was: Register storage type) gazelle@shell.xmission.com (Kenny McCormack) - 2011-05-14 08:58 +0000
Re: Different languages (Was: Register storage type) Dr Nick <3-nospam@temporary-address.org.uk> - 2011-05-14 10:09 +0100
Re: Register storage type Free Willy <nospam@nospam.com> - 2011-05-14 21:27 +0000
Re: Register storage type Ian Collins <ian-news@hotmail.com> - 2011-05-15 09:55 +1200
Re: Register storage type Keith Thompson <kst-u@mib.org> - 2011-05-14 16:46 -0700
Re: Register storage type Jens <jens.gustedt@gmail.com> - 2011-05-15 10:08 -0700
Re: Register storage type James Kuyper <jameskuyper@verizon.net> - 2011-05-15 14:09 -0400
Re: Register storage type David Thompson <dave.thompson2@verizon.net> - 2011-05-19 01:50 -0400
Re: Register storage type Stephen Sprunk <stephen@sprunk.org> - 2011-05-15 00:27 -0500
Re: Register storage type Angel <angel+news@spamcop.net> - 2011-05-15 12:56 +0000
Re: Register storage type Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-05-15 11:54 -0400
Re: Register storage type Seebs <usenet-nospam@seebs.net> - 2011-05-15 17:43 +0000
Re: Register storage type Tim Rentsch <txr@alumni.caltech.edu> - 2011-05-18 23:37 -0700
Re: Register storage type Seebs <usenet-nospam@seebs.net> - 2011-05-19 14:37 +0000
Drift: Linguistics (was Re: Register storage type) Kenneth Brody <kenbrody@spamcop.net> - 2011-05-19 13:17 -0400
Re: Register storage type Tim Rentsch <txr@alumni.caltech.edu> - 2011-05-19 11:05 -0700
Re: Register storage type Seebs <usenet-nospam@seebs.net> - 2011-05-19 19:08 +0000
Re: Register storage type Tim Rentsch <txr@alumni.caltech.edu> - 2011-05-24 00:39 -0700
Re: Register storage type Ian Collins <ian-news@hotmail.com> - 2011-05-20 07:46 +1200
Re: Register storage type Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-05-19 22:37 -0400
Re: Register storage type Michael Press <rubrum@pacbell.net> - 2011-05-25 12:57 -0700
Re: Register storage type pete <pfiland@mindspring.com> - 2011-05-15 09:09 -0400
Re: Register storage type Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-05-12 21:57 -0400
Re: Register storage type Angel <angel+news@spamcop.net> - 2011-05-12 21:14 +0000
Re: Register storage type gordonb.unc3q@burditt.org (Gordon Burditt) - 2011-05-13 07:49 -0500
Re: Register storage type Keith Thompson <kst-u@mib.org> - 2011-05-12 14:20 -0700
Re: Register storage type Seebs <usenet-nospam@seebs.net> - 2011-05-12 21:59 +0000
Re: Register storage type BGB <cr88192@hotmail.com> - 2011-05-12 15:50 -0700
Re: Register storage type Keith Thompson <kst-u@mib.org> - 2011-05-12 15:49 -0700
Re: Register storage type Seebs <usenet-nospam@seebs.net> - 2011-05-12 23:19 +0000
Re: Register storage type Keith Thompson <kst-u@mib.org> - 2011-05-12 16:29 -0700
Re: Register storage type Seebs <usenet-nospam@seebs.net> - 2011-05-13 00:15 +0000
Re: Register storage type Columbus sailed the ocean China Blue <chine.bleu@yahoo.com> - 2011-05-12 15:24 -0700
Re: Register storage type Peter Nilsson <airia@acay.com.au> - 2011-05-12 17:39 -0700
csiph-web