I'm wondering if an inline function is really the same as a preprocessor macro - just with some advantages like type checking et cetera.

Would that mean if I define
Code:
inline void double_it(int a) {
    a += a;
}
and I use it like this

Code:
int a = 5;
double_it(a);
that my var 'a' would be actually 10 afterwards? Or would I still need to use pointers?

This question just came up when I read through some C tutorial - and I'm almost sure that this isn't working