When Windows switched from __cdecl to __stdcall as the default calling convention, the size of the product dropped by about 10%. This saving was entirely due to the removal of stack adjustments after calling stdcall methods (__cdecl is the “caller setting up the stacks to delete the parameters”), __stdcall is the “caller” that is coordinating the stacks to delete the parameters “since there are more calling than calling switching reduces the size of your binaries).
The disadvantage of using __stdcall is that you do not have #s variables from the expressions (since the caller sets up the stack, they cannot know how many parameters are specified by the caller).
Bottom line: Switching to __stdcall from the default assignment agreement may reduce the size of your binary. This may or may not be important to you.
However, as mentioned above, if your code is EVER accessed by another compiler (for example, if you are delivering a .lib file to someone else), it is absolutely important that you declare the calling convention used.
source share