Example for Rule8.10 (inline function)

Moderators: misra-c, david ward

Post Reply
Wolfgang Gebauer
Posts: 1
Joined: Tue May 21, 2013 1:39 pm
Company: Robert Bosch GmbH

Example for Rule8.10 (inline function)

Post by Wolfgang Gebauer » Thu Jun 20, 2013 10:35 am

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 <header_file.h>
void function3(void)
{
function1(a_param, b_param);
...
return;
}

Can somebody give me a solution?

Regards
Wolfgang

misra-c
Posts: 571
Joined: Thu Jan 05, 2006 1:11 pm

Re: Example for Rule8.10 (inline function)

Post by misra-c » Mon Jul 01, 2013 10:35 am

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: Select all

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.
---
Posted by and on behalf of
the MISRA C Working Group

Post Reply

Return to “8.8 Declarations and defnitions”