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?