Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MISRA C:1998 Rule 104 and rule 105
#6
Rule 104:

This is there to prevent the address of a function from being calculated at run time. i.e. the use of pointer arithmetic to calculate the value of a pointer to function is prohibited.

The reason is that an error in the calculation of the address could lead to a system failure.

Rule 105:

This is to ensure that a function pointer is only used to access functions that have the same return value type and formal parameter list. i.e. the type of the function pointer and the function to which it points must be the same.

The reason for this is to keep the use of the pointer consistent. If it is not, it is possible for the programmer to supply the wrong number of parameters when a function call is made, as it might not be clear which function the pointer is pointing at.

So, you can have a function pointer that points to different function at run time, provided that:
a) The addresses of the functions are not calculated at run time (they may be retrieved from a table).
b) The functions pointed to are of the same type.
<t>Chris</t>
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)