C251 User's Guide

Function Symbols

By default, C251 uses the unmodified function name as symbol reference in the object files. The function names for code which is reentrant, uses C51 parameter passing, or ends with the ERET instruction are modified slightly to avoid run time errors. The following table lists the symbol name generated for the function declaration below:

void TestFunction (char c) ...
Symbol Name
Prefix
Description
TestFunctionFor standard code generation the function names are not modified.
TestFunction?For code which ends with returns with a ERET instruction a question mark (?) is appended at the symbol name.
TestFunction?_For reentrant code a (?) and (_) is appended at the symbol name.
TestFunction??For reentrant code which returns with a ERET instruction two question marks (??) are appended at the symbol name.
TESTFUNCTIONFor functions with PL/M-51 or C251 parameter passing the function name is converted to uppercase.
_TESTFUNCTIONFor functions with C51 parameter passing, the function name is converted to uppercase and prefixed with "_" when the function receives parameters in registers.

All symbol names are converted to uppercase letters when the C251 directive NOCASE is applied. Refer to NOCASE for more information.