( uid_21365 | 2020. 08. 05., sze – 15:55 )

Az ég szerelmére, a fenti hozzászólásomban nem írtam egy árva szót se az assemblyről!

Én arra gondoltam, a C nyelvet már eredetileg is úgy kellett volna megalkotni hogy a típusok bitmérete (hossza) fix, örök időkre rögzített legyen! És kész. Azaz mittudomén az int mindig 32 bites, a short int mindig 16 bites, etc.

Azt meg hogy hol ennyi meg hol annyi, eleve be se kellett volna venni a szabványba mert bizonytalanságot visz az egész mindenségbe. Akinek nagyon fontos hogy a program lefordulhasson különböző bithosszakkal rendelkező architektúrákon, az ne használjon int-et meg ilyesmit, hanem használja így:

ehelyett:

int valami;

használja ezt:

#define myint int

// ...............

myint valami;

És ennyi az egész...

Igen, ez több energia a részéről, de inkább ő szopjon mint MINDENKI MÁS, hogy jaj most tutira annyi bitet jelent-e ez a deklaráció amennyit eredetileg gondoltam...

Amúgy én is ezt az utat követtem csak fordítva. A programnyelvem forráskódjában nem szerepel unsigned long long (kivéve a printf utasításokat amikor a kiírás érdekében a magam típusát explicit módon erre castoltam) hanem helyette szerepel hogy

usag myvar;

(például)

és egy headerfájlban van rögzítve hogy az az usag típus egy 64 bites unsigned típus.

Holott X86_64 architektúrán dolgozom kizárólag. JELENLEG. Megtehettem volna hogy arra hagyatkozom hogy itt úgyis 64 bites az unsigned long long. De minek kockáztassak és ki tudja mit hoz a jövő...

És minden más típussal így jártam el még a char-ral is.

De nagyon utálom ezt. Illene hogy az ilyesmi a C nyelv szabványában legyen rögzítve. Örök időkre.