c-forward-token-2 is a compiled Lisp function in `cc-engine.el'.

(c-forward-token-2 &optional COUNT BALANCED LIMIT)

Move forward by tokens.
A token is defined as all symbols and identifiers which aren't
syntactic whitespace (note that multicharacter tokens like "==" are
treated properly). Point is always either left at the beginning of a
token or not moved at all. COUNT specifies the number of tokens to
move; a negative COUNT moves in the opposite direction. A COUNT of 0
moves to the next token beginning only if not already at one. If
BALANCED is true, move over balanced parens, otherwise move into them.
Also, if BALANCED is true, never move out of an enclosing paren.

LIMIT sets the limit for the movement and defaults to the point limit.
The case when LIMIT is set in the middle of a token, comment or macro
is handled correctly, i.e. the point won't be left there.

Return the number of tokens left to move (positive or negative). If
BALANCED is true, a move over a balanced paren counts as one. Note
that if COUNT is 0 and no appropriate token beginning is found, 1 will
be returned. Thus, a return value of 0 guarantees that point is at
the requested position and a return value less (without signs) than
COUNT guarantees that point is at the beginning of some token.

Note that this function might do hidden buffer changes. See the
comment at the start of cc-engine.el for more info.