You can make Font Lock mode use any face, but several faces are
defined specifically for Font Lock mode. Each of these symbols is both
a face name, and a variable whose default value is the symbol itself.
Thus, the default value of font-lock-comment-face is
font-lock-comment-face. This means you can write
font-lock-comment-face in a context such as
font-lock-keywords where a face-name-valued expression is used.
Used (typically) for comments.
Used (typically) for comments delimiters.
Used (typically) for documentation strings in the code.
Used (typically) for string constants.
Used (typically) for keywords—names that have special syntactic
significance, like for and if in C.
Used (typically) for built-in function names.
Used (typically) for the name of a function being defined or declared,
in a function definition or declaration.
Used (typically) for the name of a variable being defined or declared,
in a variable definition or declaration.
Used (typically) for names of user-defined data types,
where they are defined and where they are used.
Used (typically) for constant names.
Used (typically) for preprocessor commands.
Used (typically) for easily-overlooked negation characters.
Used (typically) for constructs that are peculiar, or that greatly
change the meaning of other text. For example, this is used for
‘;;;###autoload’ cookies in Emacs Lisp, and for #error
directives in C.