Forum: Mikrocontroller und Digitale Elektronik MISRA Check Fehler


von Dirk F. (dirkf)


Angehängte Dateien:

Lesenswert?

Hallo,
habe den MISRA-checker von Microchip gekauft und installiert.
Kleines Testprogramm für den Anfang:

1
int Nestv = 0;
2
3
void main (void)
4
{
5
    Nestv = 0;
6
    Nestv ++;
7
}

Warum wird dieser Fehler erzeugt ?

Starting MISRA C:2012 Compliance Check (Cppcheck v2.11)...
Checking main.c ...
main.c:1:5: [misra-c2012-8.4] Required: A compatible declaration shall 
be visible when an object or function with external linkage is defined
int Nestv = 0;
    ^

MISRA C:2012 Compliance Check (Cppcheck) failed with 1 issue(s)

von Clemens L. (c_l)


Lesenswert?

Du definierst eine globale Variable, die auch in anderen Modulen 
verwendet werden kann. Damit die anderen Module darauf zugreifen können, 
brauchen sie eine Deklaration in einer .h-Datei. MISRA verlangt hier, 
dass die .h-Datei mit der Deklaration auch in diesem Modul verwendet 
wird, damit Konflikte zwischen Deklaration und Definition erkannt werden 
können.

Falls es nicht global sein soll, muss es 'static' sein.

: Bearbeitet durch User
von Dirk F. (dirkf)


Lesenswert?

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.