Does 'ref' turn into a pointer during compile time?
    H. S. Teoh 
    hsteoh at qfbox.info
       
    Thu Dec 22 00:57:04 UTC 2022
    
    
  
On Thu, Dec 22, 2022 at 12:43:28AM +0000, thebluepandabear via Digitalmars-d-learn wrote:
> Say you have the following function that takes in a `ref` parameter:
> 
> ```D
> void modify(ref int num) {
>     num += 5;
> }
> ```
> 
> Does the compiler turn that into the code below?
> 
> ```D
> void modify(int* num) {
>     num += 5;
> }
> ```
> 
> I was just wondering whether or not this is the case because I don't
> think this was touched in the book about D I am reading.
Yes, a ref parameter is implemented as a pointer in the generated
assembly code.  But that's supposed to be an implementation detail that
you generally shouldn't worry about unless you're working with low-level
operations.
T
-- 
Ph.D. = Permanent head Damage
    
    
More information about the Digitalmars-d-learn
mailing list