The __fortran and __pascal conventions specify argument passing that is compatible with Microsoft FORTRAN and Microsoft Pascal. The following list shows the implementation of this calling convention:
| Element | Implementation |
| Argument-passing order | Left to right |
| Argument-passing convention | By value, unless a pointer or reference type is passed |
| Stack-maintenance responsibility | Called function adjusts the stack |
| Name-decoration convention | None |
| Case-translation convention | Names translated to uppercase |
To declare a function as __fortran or __pascal, use a declaration of the form:
void __fortran regress( double series[],
double *slope,
double *intercept );
Note that, in the preceding declaration, the modifier __fortran modifies the name immediately to its right, regress. Functions declared using the __fortran or __pascal modifiers return values the same way as those declared using __cdecl.
Note:
The __fortran and __pascal modifiers are identical; the two keywords are supported for internal code documentation.
The __fortran and __pascal keywords are not supported in 32-bit compilations.¨