Here is an example, where left-right associativity of function call operator matters:
#include <stdio.h>
void foo(void)
{
puts("foo");
}
void (*bar(void))(void) // bar is a function that returns a pointer to a function
{
puts("bar");
return foo;
}
int main(void)
{
bar()();
return 0;
}
The function call:
bar()();
is equivalent to:
(bar())();