That's a C99 construct, since in C90 an empty parameter list indicates that the function takes an unknown number of arguments. It is not C++, BTW, since Stroustrup detests it (and I agree).
... not necessarily so. It's valid C and C++. I've seen plenty of industrial C++ using that form. GNU, Sun and Microsoft's C++ compiler seem happy enough.