You can suppress function like macros by using parenthesis because function like macro expansion is literally defined as "name directly followed by open paren".
#define foo(x) something
void foo(int a) {} // doesn't work
void (foo)(int a) {} // does work because 'foo)' can never be a function macro