English
Language : 

CC78K0S Datasheet, PDF (399/520 Pages) NEC – C Compiler Ver.1.30 or Later Language
CHAPTER 11 EXTENDED FUNCTIONS
Static Model
RESTRICTIONS
• Static model modules cannot be linked with a modules of a normal model. However, static model modules
can be linked to each other even if the maximum size of the shared area is different.
• Floating-point numbers are not supported. If the float and double keywords are described, a fatal error
occurs.
• Arguments are limited to a maximum of 3 arguments and 6 bytes in total.
• It is impossible to use variable length arguments since arguments are not passed through stacks. Using
variable length arguments causes an error.
• Arguments and return values of structures/unions cannot be used. The description of these arguments and
values causes an error.
• The noauto/norec/_ _leaf functions cannot be used. A warning message is output and the descriptions are
ignored (Refer to 11.5 (5) noauto functions, 11.5 (6) norec functions).
• Recursive functions cannot be used. As function arguments and the automatic variable area are statically
secured, recursive functions cannot be used. An error is generated for recursive functions that can be
detected by the compiler.
• A prototype declaration cannot be omitted. An error is generated if neither the function’s real definition nor a
prototype declaration exist, in spite of there being a function call.
• Due to the restrictions of arguments and inability to use recursive functions, some standard libraries cannot
be used.
• If the -ZL option has not been specified, a warning is output and processing is carried out as if the -ZL option
was specified. long types are therefore always regarded as int types (see 11.5 (24) Type modification).
COMPATIBILITY
<From another C compiler to this C compiler>
• When creating objects of normal model, source modification is not needed unless the -SM option is specified.
• To create a static model object, modifications are made according to USAGE above.
<From this C compiler to another C compiler>
• Source modification is not needed if re-compiling is performed by another compiler.
CAUTIONS
• Since arguments/automatic variables are secured statically, the contents of arguments/automatic variables in
recursive functions may be destroyed. An error occurs when the function calls itself directly. However, no
error occurs when the function calls itself after an other function is called since the compiler cannot detect this
processing.
• During an interruption, the contents of arguments/automatic variables may be destroyed if the function being
processed is called by interrupt servicing (interrupt functions and functions that are called by interrupt
functions).
• During an interruption, save/restore of the shared area is not executed even when the functions being
processed are using the shared area.
User’s Manual U14872EJ1V0UM
399