c-mark-function is an interactive compiled Lisp function in `
Put mark at end of the current top-level declaration or macro, point at beginning.
If point is not inside any then the closest following one is
chosen. Each successive call of this command extends the marked
region by one function.
A mark is left where the command started, unless the region is already active
(in Transient Mark mode).
As opposed to M-x c-beginning-of-defun and M-x c-end-of-defun, this
function does not require the declaration to contain a brace block.