Padding Bytes

xXDragonflyXx

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Huhu,

Mal so eine kleine Frage..
Wenn ich mein Projekt kompiliere, dann bekomme ich eine menge Warnungen..
Zum Beispiel:


"Die Struktur 'ReSyBasic_SR_DataConnect' enthält am Ende Padding Bytes. Bis ProConOS 4.x enthalten Strukturen keine Padding Bytes am Ende."

Was hat das zu Bedeuten?
Eine Zuweisung ggf. eine Beschreibung gibt es nicht dazu.

LG
Dragonfly
 
Das sind Füllbytes(-bits) meine ich. Wenn du z.B. 10 Bits in ein Word kopierst werden die letzten 6 Bit mit 0 aufgefüllt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi xXDragonflyXx,

Unsere Steuerungen nutzen in der Regel ein DoubleWord Allignment, d.h. eine Speicherzelle ist ein DoubleWord groß und muss bei Verwendung eines "kleineren" Datentyps bzw. einer Struktur aufgefüllt werden.
Diese "Füllbytes" nennt man Paddingbytes. Ältere Systeme (< ProConos 4.x) unterstützten keine Paddingbytes am Ende einer Struktur, daher die Warnung.

In der von Ihnen verwendeten Bibliothek befinden sich an einigen Strukturen diese Paddingbytes, dies hat aber keine Auswirkungen auf die Funktion und die Warnungen können ignoriert werden.

Gruß Marcus Pott
 
Das hat zutun mit der Speicherausrichtung. Die Padding Bytes werden bestimmt anhand des größten Datentyps in einer Struktur. Das kleinste ist Byte. D.h. auch wenn du nur Bools nutzt, wird trotzdem für jedes Bool ein Byte genommen. Aber ich kenn das nur von eCLR Steuerungen, also von den Kleinen.

Edit: Ich sollte mich vielleicht beeilen mit dem schreiben und nicht kurz weggehen ;)
 
Ach so, Danke :)

Aber ist es dann auch möglich das Programm 0 Fehler und 0 Warnungen anzeigen zu lassen?
Im Prinzip ist das ja nicht schlimm, doch 0 Fehler/ 0 Warnungen sieht einfach schöner aus als 0 Fehler und 44 Warnungen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schöner sieht es natürlich aus aber schlimm ist das dennoch nicht.
Leider hast du bei dem von dir genannten Datentypen nicht die Möglichkeit dies zu ändern. Da es ein Datentyp aus der Resy-Bibliothek ist. Wenn du selber Datentypen erstellst, und so mache ich das, achte ich darauf das ich manuell so genannte "Dummy-Variablen" in Strukturen einfüge um die Paddingbytes zu verhindern.
 
Was macht es denn für einen Unterschied, ob es jetzt mit Padding Bytes aufgefüllt wird oder man es selber mit Dummy-Variablen macht?
 
wie dragión schon schreibt, am ende 0 Fehler und ß Warnungen

einige Kunden wollen am Ende nach einem Kompliervorgang genau das so haben .....
 
Zurück
Oben