How do we define the term "computation" across models of computation?
Definition 5.12 is a standard way of defining a &quot;computable function&quot;.  I see that you wish it was defined generically, but things are not as you wish they were; computability is typically defined with respect to a single model of computation.
That said, if you have any other Turing-complete notion of computation, then it is easy to prove that you can replace &quot;Turing machine&quot; with &quot;machine in that model of computation&quot; and you'll get an equivalent notion: in other words, there will be a Turing machine that computes $f$ iff there is a machine in that model of computation that computes $f$.  So the concept is indeed quite generic, even if the definition is not articulated that way.
See also https://en.wikipedia.org/wiki/Computable_function#Definition.
The exact semantics of C are messy and hard to formalize, and there appears to be some debate about whether C is Turing-complete, so C code is typically not a good way to prove that a function is computable or to reason about whether a function is computable.