I remember long ago, when I was using the Turbo C, I didn’t need to care about the call convention of a function, every function I used or defined took the form of C call convention.
But after I move to Windows platform, I found that there’re so many call convention speicifiers such as:
WINAPI, STDCALL, __cdecl…
Is this the result of the evolution of the compiler?
No, its simply, or mostly, historical legacy with the Windows API. Most systems outside of Windows do not routinely use different calling conventions (exception: syscalls and kernel mode).