In CC Mode, noise macros are macros which expand to nothing,
or compiler directives (such as GCC's
__attribute__) which play
no part in the syntax of the C (etc.) language. Some noise macros are
followed by arguments in parentheses (possibly optionally), others
Noise macros can easily confuse CC Mode's analysis of function headers, causing them to be mis-fontified, or even mis-indented. You can prevent this confusion by specifying the identifiers which constitute noise macros.
This variable is a list of names of noise macros which optionally have arguments in parentheses. Each element of the list is a string, and must be a valid identifier. An element in
c-noise-macro-with-parens-namesmust not also be in
c-noise-macro-names. For performance reasons, such an element, together with the optional parenthesized arguments, is specially handled, but it is only handled when used in declaration contexts1.
The two compiler directives
__declspechave traditionally been handled specially in CC Mode; for example they are fontified with font-lock-keyword-face. You don't need to include these directives in
c-noise-macro-with-parens-names, but doing so is OK.