Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
5.9 and static function or global variable
#1
As we know, static function or global variable has only internal linkage, is invisible for other module,
Why their name can not be defined as same as ones in other translation unit?
For example, below case :
/*tunit1.c*/
static int8_t count;
static void foo ( void )
{
}

/*tunit2.c*/
static int8_t count;
static void foo ( void )
{
}
<t></t>
#2
The aim of the rule is to prevent any user confusion that might arise.

The user calling "foo" in tunit2.c might have forgotten that there is a function with that name defined in tunit2.c and assume that they are calling the function declared in tunit1.c, even though the other function is defined as "static".
Posted by and on behalf of the MISRA C Working Group


Forum Jump:


Users browsing this thread: 1 Guest(s)