EasyManua.ls Logo

Intel i960 - Page 238

Intel i960
347 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Language Implementation
7-49
7
(If you are writing a header file to be included in ANSI C programs, write
__inline__ instead of inline. See the Alternate Keywords section.)
You can also make all "simple enough" functions inline with the option
finline-functions. Note that certain usages in a function definition
can make it unsuitable for inline substitution.
When a function is
inline, if all calls to the function are integrated into
the callers, and the function’s address is never used, then the function’s
own assembler code is never referenced. In this case, the compiler does
not actually output assembler code for the function, unless you specify the
option
fkeep-inline-functions. If there is a nonintegrated call, then
the function is compiled to assembler code as usual. The function must
also be compiled as usual if the program refers to its address, because that
reference can not be inlined.
Except when doing two-pass compilation, if an inline function is not
static, then the compiler must assume that there may be calls from other
source files; since a global symbol can be defined only once in any
program, the function must not be defined in the other source files, so the
calls therein cannot be integrated. Therefore, a non-
static inline
function is always compiled on its own in the usual fashion.
If you specify both
inline and extern in the function definition, then the
definition is used only for inlining. In no case is the function compiled on
its own, not even if you refer to its address explicitly. Such an address
becomes an external reference, as if you had only declared the function,
and had not defined it.
This combination of
inline and extern has almost the effect of a macro.
The way to use it is to put a function definition in a header file with these
keywords, and put another copy of the definition (lacking
inline and

Table of Contents

Related product manuals