MISRA Discussion Forums

Full Version: Example for Rule8.10 (inline function)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello,

I have a question regarding the Rule 8.10.
Usually in our code we implement inline functions in header files.
Therefore these inline functions are already visible in many modules.
How can these inline function be made static?
Is it necessary to implement these inline functions as static in header files?
example:

header_file.h
inline void function1(int a, int b)
{
...
return;
}

c_file1.c
include
void function3(void)
{
function1(a_param, b_param);
...
return;
}

Can somebody give me a solution?

Regards
Wolfgang
Hello Wolfgang

To comply with MISRA C:2012 Rule 8.10, the function should be declared with the static storage class, within the header file:

Code:
inline [i][b]static[/b][/i] void function1(int a, int b)
{
...
return;
}

Following inclusion of the header file in a source module, this declaration is visible, but only to the module(s) that have included the header file.