Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #3838

Re: Register storage type

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Register storage type
Date 2011-05-12 14:20 -0700
Organization None to speak of
Message-ID <lnei43k45b.fsf@nuthaus.mib.org> (permalink)
References <iqhhgg$d8j$1@speranza.aioe.org>

Show all headers | View raw


Free Willy <nospam@nospam.com> writes:
> Say the CPU has only AL, BL, CL, DL or eight 8 bit registers, and if
> want to declare 10 register variables in my code, is it possible to do
> it?

Certainly, you can declare as many register variables as you like.

> Say size_of(float) is the same as size_of(int), is it possible to define 
> a "register float" variable? How will the register get converted between 
> int and float?

(It's "sizeof", not "size_of".)

You can define a "register float" variable regardless of the relative
sizes of int and float.  No conversion is implied.  You can use the
"register" specifier for any declaration, as long as it's inside a
function (though declaring an array as "register" means you can't
do anything with it other than applying "sizeof").

The thing to remember is that "register" doesn't mean "store this
object in a CPU register".  All the standard says is that

    A declaration of an identifier for an object with storage-class
    specifier register suggests that access to the object be as
    fast as possible. The extent to which such suggestions are
    effective isimplementation-defined.

and that you can't take the address of a register object, or declare
one outside a function.

The common wisdom these days is that the compiler can do a better
job of deciding what to store in a register than you're likely to,
and that declaring objects as "register" can even hurt performance
if the compiler pays attention to it.  I'm actually not sure whether
this is correct in general.

-- 
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


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