Stlink: Sauberer Code mit einheitlichem Variablentyp

Erstellt am 6. Apr. 2020  ·  6Kommentare  ·  Quelle: stlink-org/stlink

Soweit ich sehen kann, verwenden viele Funktionen Variablen mit fester Länge. Es ist in der Tat nützlich für Funktionen, die mit einem festen Datenformat umgehen müssen. Der Missbrauch von Variablen mit fester Länge führt jedoch zu möglichen Buildfehlern und unwesentlichen Umwandlungen.

Zum Beispiel in src/usb.c:
image

send_recv akzeptiert txsize und rxsize als size_t aber im tatsächlichen Kontext müssen diese Argumente in int oder unsigned int , ohne eine feste Länge, und wer auch immer sie aufruft, liefert Argumente eines anderen Typs ( uint32_t oder magische Zahlen in diesem Fall). Beim Aufrufprozess wird eine unbeabsichtigte Umwandlung von 32 Bit auf 64 Bit angewendet. Außerdem sind viele explizite Umwandlungen erforderlich, um einen Buildfehler zu verhindern.

Ich schlage vor, Variablen mit fester Länge entsprechend ihrer tatsächlichen Verwendung zu ersetzen.
Bleiben Sie unscharf, um tragbarer zu sein.

Ich würde es gerne ausprobieren, wenn andere es sinnvoll finden.

codfeedback codrefactoring needissuer-feedback

Alle 6 Kommentare

Danke, dass du das auf die Tagesordnung gesetzt hast. Da es sich um ein allgemeines Problem in der gesamten Codebasis handelt, bin ich mir im Moment nicht sicher, ob wir das sofort in v1.6.1 einbauen sollten. @martonmiklos hat zuvor eine Bereinigung im Zusammenhang mit dem

Vielleicht kann ich zuerst lokal aufräumen und den Entwicklungsprozess verfolgen.😃

Natürlich können Sie das, aber stellen Sie sicher, dass Sie von develop abzweigen und diesem Zweig folgen, anstatt master , der nicht mehr für häufige Änderungen verwendet wird, sondern nur für Releases und Hotfixes.

Hinsichtlich der Kompatibilität zwischen ILP32, LLP64 und LP64 halte ich es für eine gute Idee den Datentyp long durch int32_t zu ersetzen, aber wenn man in Zukunft Überraschungen in Bezug auf . ausschließen will Konvertierung können wir in Erwägung ziehen, wo immer möglich, zu Integer-Typen mit fester Breite überzugehen...

@chenguokai : Das überlasse ich dir. Wenn Sie Lust haben und etwas Zeit haben, können Sie dazu beitragen.

Natürlich werde ich das vor der Veröffentlichung tun. Werde jetzt beschäftigt.😔

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

lulle2007200 picture lulle2007200  ·  12Kommentare

vitormhenrique picture vitormhenrique  ·  13Kommentare

smartHarsh picture smartHarsh  ·  9Kommentare

bolorkhuu picture bolorkhuu  ·  11Kommentare

gorynch picture gorynch  ·  5Kommentare