Az ANSI-C szabványban meg van határozva, hogy egy integer hány bites?
"Úgy, hogy elképzelhető, hogy nem integert használ a Flash memória megcímzéséhez..."
Bizony, a mikrokontrollerek gyakran Harvard architektúrájúak, ahol az utasításszó 10/12/14/stb. bites lehet, és abban ugyancsak változatos címhosszak is elférnek.
"Szóval akkor nem attól 16 bites egy integer, mert maga a processzor is az?!"
Nem. Az integer általában az az adathossz, amit a proci kényelmesen kezelni tud. De a címbusz attól még lehet szélesebb, mint az adatbusz. (Pl. Z80 CPU: 8 bites adatbusz -> 8 bites int; 16 bites címbusz, 64k közvetlen címterület.)
"Mert PC-n ez általában így van tudtommal."
De nem azért, mert ez valami szabály, csak egyszerűen így alakult, hogy az adatbusz szélessége utolérte a címbusz szélességét.
A főkérdésre a választ már leírták: Az int mérete architektúra-függő. Muszáj, hogy az legyen, különben minden új procira új C szabvány kellene, ha hordozható nyelvet akarnak.
* "Az int mérete architektúra-függő."
Bocsánat, talán úgy pontosabb, hogy fordító implementáció függő, ami ugye az architektúrát követi. :)
"C90-ben viszont elvileg meg tudod ezt tenni:
typedef unsigned long uint32_t ;
Igy az unsigned long típus 32 bites lesz."
Hát ez szörnyen nagy hülyeség, szerintem.
Mitől lenne már 32 bites? Mert az neve?..
Most, hogy mondod, nekem se kóser.
Mert abból még én is emlékszem valamire, hogy a kulcsszavak nem használhatóak sem változónak, sem függvénynévnek, sem felhasználó által definiált adattagnak, vagy makrónévnek. Vagy nem?
"C90-ben viszont elvileg meg tudod ezt tenni:
typedef unsigned long uint32_t ;
Igy az unsigned long típus 32 bites lesz."
Nem az unsigned long típus lesz 32 bites, az már alapból annyi. Csak adtál neki egy új típusnevet.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!