c-beginning-of-macro is a compiled Lisp function in `cc-engine.el'.

(c-beginning-of-macro &optional LIM)

:around advice: `ad-Advice-c-beginning-of-macro'

Go to the beginning of a preprocessor directive.
Leave point at the beginning of the directive and return t if in one,
otherwise return nil and leave point unchanged.

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