Frage zu MISRA-Regel 1.4



  • Hallo,

    ich verstehe nicht so ganz was mit dieser Regel gemeint ist:

    The compiler/linker shall be checked to ensure that 31 character
    significance and case sensitivity are supported for external identifiers.

    Kann mir jemand erklären was diese regel besagt?



  • Das bedeutet, dass für Namen unterschiedliche Objekte bezeichnen, wenn in den ersten 31 Zeichen ein Unterschied zu finden ist. (Auch Groß/Kleinschreibung.)

    Z.B. wenn man nur die ersten drei nimmt, wäre "xxxy" und "xxxx" später nicht garantiert unterscheidbar, weil das Programm nur die ersten drei Zeichen prüft/speichert.

    void TueDies()
    und
    void TueDas()

    wäre dann nach außen hin (für den Linker) die gleiche Funktion. (Vom Namen her)



  • Als Zusatzinfo: Laut C-Standard muss ein Compiler nur garantieren, dass die ersten 8 Zeichen zur Unterscheidung herangezogen werden. Was der Grund fuer Namen wie "strcat" in der Standard-Lib ist.



  • Ahja vielen dank für eure antworten!!



  • Blue-Tiger schrieb:

    Als Zusatzinfo: Laut C-Standard muss ein Compiler nur garantieren, dass die ersten 8 Zeichen zur Unterscheidung herangezogen werden. Was der Grund fuer Namen wie "strcat" in der Standard-Lib ist.

    wurde das fuer c++ auf 32 erweitert?


Anmelden zum Antworten