<<< Introduction | Index | Calling Conventions >>> |
In flat memory model all procedure calls are NEAR, which means that they take place within one large memory segment. This makes CALL/RET coordination between multiple modules, potentially written in different programming languages, quite easy.
However, procedure name coordination is more complicated:
The MASM Assembler adds the @N suffix to names, where N is the number of parameters passed on the stack, measured in bytes. The Visual C++ compiler does the same thing.
MASM generates the the leading underscore character automatically, if the standard call calling convention , STDCALL, is specified at the beginning of the program.
Coordination of uppercase and lowercase letters is important.
C++ allows function name overloading, so that the same C++ identifier can refer to different functions. For C++ programmers these functions differ in the number of parameters, parameter types, and type of the return value. Internally, C++ compiler automatically decorates function names in such way that different functions can be distinguished by the linker.
<<< Introduction | Index | Calling Conventions >>> |