| C-M-h
 | 
    
Put mark at the end of a function definition, and put point at the
beginning (c-mark-function).
 
 | 
| M-q
 | 
    
Fill a paragraph, handling C and C++ comments (c-fill-paragraph).
If any part of the current line is a comment or within a comment, this
command fills the comment or the paragraph of it that point is in,
preserving the comment indentation and comment delimiters.
 
 | 
| C-c C-e
 | 
    
Run the C preprocessor on the text in the region, and show the result,
which includes the expansion of all the macro calls
(c-macro-expand).  The buffer text before the region is also
included in preprocessing, for the sake of macros defined there, but the
output from this part isn't shown.
 
When you are debugging C code that uses macros, sometimes it is hard to
figure out precisely how the macros expand.  With this command, you
don't have to figure it out; you can see the expansions.
 
 | 
| C-c C-\
 | 
    
Insert or align `\' characters at the ends of the lines of the
region (c-backslash-region).  This is useful after writing or
editing a C macro definition.
 
If a line already ends in `\', this command adjusts the amount of
whitespace before it.  Otherwise, it inserts a new `\'.  However,
the last line in the region is treated specially; no `\' is
inserted on that line, and any `\' there is deleted.
 
 | 
| M-x cpp-highlight-buffer
 | 
    
Highlight parts of the text according to its preprocessor conditionals.
This command displays another buffer named `*CPP Edit*', which
serves as a graphic menu for selecting how to display particular kinds
of conditionals and their contents.  After changing various settings,
click on `[A]pply these settings' (or go to that buffer and type
a) to rehighlight the C mode buffer accordingly.
 
 | 
| C-c C-s
 | 
    
Display the syntactic information about the current source line
(c-show-syntactic-information).  This is the information that
directs how the line is indented.
  |