c-beginning-of-defun is an interactive compiled Lisp function in `cc-cmds.el'.

(c-beginning-of-defun &optional ARG)

Move backward to the beginning of a defun.
Every top level declaration that contains a brace paren block is
considered to be a defun.

With a positive argument, move backward that many defuns. A negative
argument -N means move forward to the Nth following beginning. Return
t unless search stops due to beginning or end of buffer.

Unlike the built-in `beginning-of-defun' this tries to be smarter
about finding the char with open-parenthesis syntax that starts the