zahada delky struktury GCC

Jan Waclawek konfera na efton.sk
Pondělí Březen 11 20:44:00 CET 2024


>packed ve strukturach se vyhybam jako cert krizi, pak to nema zarovnane 
>nic a kod je tezko prenositelny na neco, co to nesnasi. 

No, kazdy z nas funguje v nejakom prostredi, co nevyhnutne ovplyvnuje jeho
nazory a styl... ja napriklad nemam potrebu prenasat kod z platformy na
platformu; na druhej strane vsak, packed je jedina i ked poriadne trnista
a bolestiva cesta ku kompatibilnemu layoutu; t.j. ak potrebujete prenasat
data v strukturach medzi platformami.

Takze ak nejaky target neznasa nezarovnanost, tak musim rucne zarovnavat v
ramci toho packed, so znalostou veci. A samozrejme musim mat poriadne
nastudovane nasledky toho packed v danom prostredi (prekladaci, jeho
konkretnej inkarnacii, prepinacov, atributov, atd.)

Isteze, toto sa nesmie nahlas povedat v akademickom prostredi, lebo to
vedie nielenze k slavnostnemu trhaniu diplomu, ale takmer celkom iste k
verejnej ostrakizacii a v odovodnenych pripadoch, ak to clovek skombinuje
trebars s kacirskymi tvrdeniami typu RTOS are considered harmful a ze
myslienka HAL v mcu je chujovina, bez akehokolvek zavahania k verejnej
poprave stredovekeho typu. No ano, mohol by som byt purista a pre ucely
prenosu dat pre-vyskladavat tie struktury z nejakych internych nepacked.
Dakujem, neprosim, zivot je kratky.

Ten atribut packed v gcc ma nejake nedokumentovane pravidla propagacie na
pod/nadstruktury. Prave kvoli tomu, ze su nedokumentovane, ked packujem,
maniakalne pisem packed do vsetkych urovni, aj unionov (uz som sa stretol
s tym ze to bolo skutocne treba, bola to sice v bugzille popisana chyba
gcc, ale je jednoduchsie tam tie packed pisat ako si byt isty ze clovek
pouziva vzdy a vsade opravenu verziu).

wek




Další informace o konferenci Hw-list