Even as someone who doesn't mind writing in C, I would absolutely flag that function as way, way, way, way too terse for no good reason.
The code gets ridiculously easier to read if you write src[0] and src[1] instead of (*src) and (*(src+1)). And, as a bonus, the precedence problem disappears.
I really don't understand people why write C code like the original code. It's just asking for a bug.