Hi,
[ MISRA 8.1 ] Functions shall have prototype and prototype shall be visible at both the definition and call
I am using cystal revs for C MISRA C 2004 compliance.
Its showing violation in following code. pl. suggest solution for this.
controller specific header file
-----------------------------------------
SFR( P0, 0x80U ); /* Port 0 Latch */
Main.c
----------
void main( void )
Global_Frame[ 0 ] = ( U8 )( Mid_No & 0x1fU ); /* bit of mid */
MISRA 8.1
Moderators: misra-c, david ward
-
- Posts: 572
- Joined: Thu Jan 05, 2006 1:11 pm
Re: MISRA 8.1
It is difficult to provide a detailed comment without seeing more context.
SFR is presumably a function. If it were a macro then a violation of Rule 8.1 would not be expected and if it were a language extension then it would not conform to the ISO C language standard. Assuming that it is a function, the solution is to provide a suitable prototype declaration for it. There may even be such a declaration in a header file provided by the implementation.
In the case of main, the solution again is to provide a suitable declaration at some point prior to the function definition. The return type and the number of parameters along with their types is implementation-defined in a freestanding implementation so provided your declaration and definition match each other and also match the requirements of your implementation there should be no problem.
SFR is presumably a function. If it were a macro then a violation of Rule 8.1 would not be expected and if it were a language extension then it would not conform to the ISO C language standard. Assuming that it is a function, the solution is to provide a suitable prototype declaration for it. There may even be such a declaration in a header file provided by the implementation.
In the case of main, the solution again is to provide a suitable declaration at some point prior to the function definition. The return type and the number of parameters along with their types is implementation-defined in a freestanding implementation so provided your declaration and definition match each other and also match the requirements of your implementation there should be no problem.
---
Posted by and on behalf of
the MISRA C Working Group
Posted by and on behalf of
the MISRA C Working Group