I think this will depend somewhat on the compiler you use, but I don't know of any reasons calling functions with consts should be avoided. In general, passing by pointer is more efficient than passing variables. The best way to know is compile different code and check the disassembly. A pointer might in some cases be less efficient, depending on the type being passed, e.g. if the pointer is 4 bytes and you are only passing one byte, it might be better to just pass the variable. Again, I would check what the compiler does in each case.