Home Segments Index Top Previous Next

328: Mainline

Now compare the two approaches to computing the trade value. The first approach uses an ordinary return value:

double trade_price (struct trade *tptr) { 
  return tptr -> price * tptr -> number; 
} 
...
for (counter = 0; counter < limit; ++counter) 
  sum = sum + trade_price(&trades[counter]); 

The second approach uses a pointer parameter in combination with the address of a variable's value:

void trade_price (struct trade *tptr, double *result) { 
  *result = tptr -> price * tptr -> number; 
} 
... 
for (counter = 0; counter < limit; ++counter) { 
  trade_price (&trades[counter], &trade_price_result); 
  sum = sum + trade_price_result; 
}