ckeil8051

How to use __func__ in 8051


I'm trying to print functions name with __func__ macro in a 8051 project. But when I build on Keil, It has an error like this:

main.c(50): error C202: '__func__': undefined identifier

have any macro others similary? Please help me solves it.


Solution

  • As the documentation says, the Keil C51 compiler does not support this macro, and apparently no other of similar functionality:

    The Cx51 Compiler provides the following predefined constants you may use in preprocessor directives and C code to create portable programs.

    Constant Description
    __C51__ Version number of the compiler (for example, 701 for version 7.01).
    __CX51__ Version number of the compiler (for example, 701 for version 7.01).
    __DATE__ Date when the compilation was started in ANSI format (month dd yyyy).
    __DATE2__ Date when the compilation was started in short form (mm/dd/yy).
    __FILE__ Name of the file being compiled.
    __LINE__ Current line number in the file being compiled.
    __MODEL__ Memory model selected:
    0 for SMALL,
    1 for COMPACT,
    2 for LARGE.
    __TIME__ Time when the compilation was started. (Format: hh:mm:ss)
    __STDC__ Defined to 1 to indicate full conformance with the ANSI C Standard.