In Microsoft C/C++, functions can call other functions using three different conventions. Note that, while no calling convention has been defined as “standard,” most C/C++ compilers use conventions similar to those described here. The C calling convention requires the most object code to set up, but it is the only calling convention that supports functions with variable-length argument lists. The FORTRAN/Pascal calling convention is more compact, but does not allow for variable-length argument lists. C++ uses the FORTRAN/Pascal calling convention, except for functions declared with variable-length argument lists, which implicitly use the C calling convention. The __fastcall, or register calling convention is the fastest of the three calling conventions, but it does not support variable-length argument lists or mixed-language program interfaces.