C and C++ differ in their interpretation of an empty parameter list. In the following function declaration:
void f(); // different meanings in C and C++
C++ treats f as a function that returns no value and takes no arguments, whereas in C it is treated as a function that returns no value and takes an unspecified list of arguments. Put differently, an empty parameter list in C++ is synonymous to void, whereas in C it means that the function can take any number of arguments of any type. To ensure backward compatibility with C and to avoid confusion, it