"register int n" alternative

Stefan Koch uplink.coder at googlemail.com
Sun Feb 16 15:15:44 UTC 2020


On Sunday, 16 February 2020 at 13:48:43 UTC, Виталий Фадеев wrote:
> Possible mark variable for force use register ?
>
> Example C-code:
> {
>     register char *buf;
>     long           pos;
>     register int   n;
>     register int   r;
>
>     if (!n)
>         return 0;
> }
>
>
> How to implement in D ?

Don't you get a warning from your c compiler a C compiler?
The register keyword as been deprecated for ages in C.
Since the compiler cannot actually guarantee that the variable 
will be a register.
As a result D does not have the register keyword.

in D simply allocating a local is enough (and compiling with 
optimization enabled), if there is a register free to put the 
variable in, that's what the optimizer will do.

If you don't want to be at the mercy of the optimizer you can 
always write a block of asm.
Which is what I usually do when I _really_ care.


More information about the Digitalmars-d-learn mailing list