Die MISRA‑C-Guidelines schränken die Syntax und Semantik der C-Sprache auf eine vorhersagbare Teilmenge ein, die den Anforderungen Safety- und Security-kritischer Systeme genügt. Mithilfe von Regeln und Vorschriften minimieren oder eliminieren diese Richtlinien alle als riskant oder unsicher bekannten Codierpraktiken:
Im folgenden Beispiel wird der sizeof()-Operator gemäß dem C-Standard verwendet:
Da sizeof() die übergebenen Ausdrücke jedoch nicht ausführt, sondern lediglich Typ und Umfang des resultierenden Ausdrucks zum Zeitpunkt der Kompilierung evaluiert, kann dieser Code zur Laufzeit zu unerwartetem Verhalten führen. Folglich wird die Verwendung des sizeof-Operators in MISRA C:2012, Regel 13.6 wie folgt eingeschränkt: »Der Operand des sizeof-Operators darf keine Ausdrücke enthalten, die das Risiko potenzieller Nebenwirkungen bergen.«
Hierbei handelt es sich um eine entscheidbare Regel. Entwickler können deshalb mithilfe der statischen Analyse ermitteln, an welchen Stellen diese Regel verletzt wurde. Wurde eine solche Stelle gefunden, kann der Fehler durch eine einfache Modifikation korrigiert werden:
Der 25-jährige Werdegang der MISRA‑C-Guide-lines sowie die zunehmende Komplexität heutiger Embedded-Software haben dazu geführt, dass die Konformitätsprüfungs-Tools über Jahrzehnte hinweg verbessert wurden. Sogar MISRA C selbst empfiehlt die Verwendung von Statische-Analyse-Tools zum Sicherstellen der Konformität.