Oh. I think I understand now, thank you (and sorry for taking up your time).

EDIT:

Slightly off-topic, but I don't really want to make a new thread just for this:

Performance-wise, what is the best way to do things?

I don't know which one to use. I assume alternative 3 is the slowest, since (if I understand it correctly) it creates two new variables (a and b) and alternative 2 only creates one (b). So, by that logic, shouldn't the #define be the fastest, or am I misunderstanding something?Code:// Alternative 1: #define #define Multiply(a, b) (a * b) // Alternative 2: function without return void Multiply(unsigned long* a, unsigned long b) { (*a) *= b; } // Alternative 3: function with return unsigned long Multiply(unsigned long a, unsigned long b) { return (a * b); }