Kezdőoldal » Számítástechnika » Programozás » Az ANSI-C szabványban meg van...

Az ANSI-C szabványban meg van határozva, hogy egy integer hány bites?

Figyelt kérdés

2014. máj. 5. 22:49
1 2
 11/17 anonim ***** válasza:

"Ú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.

2014. máj. 6. 11:48
Hasznos számodra ez a válasz?
 12/17 anonim ***** válasza:

* "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. :)

2014. máj. 6. 12:10
Hasznos számodra ez a válasz?
 13/17 anonim ***** válasza:
Nincs. Az adattípusoknak csak az egymáshoz viszonyított mérete kötött, illetve egy minimum méret van meghatározva, ami az int-re asszem 4 byte.
2014. máj. 6. 16:52
Hasznos számodra ez a válasz?
 14/17 anonim ***** válasza:

"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?..

2014. máj. 6. 20:55
Hasznos számodra ez a válasz?
 15/17 A kérdező kommentje:

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?

2014. máj. 6. 21:02
 16/17 anonim ***** válasza:
Ha van definiálva stdint.h header fájlban uint32_t. Akkor az tényleg pont 32 bites a probléma, hogy csak a legalább 32 bitesre létezésére van garancia (uint_least32_t). Nem te definiálod, akkor semmi értelme nincs, ennyi erővel megnézheted mekkora az unsigned int az adott rendszeren az sem rosszabb.
2014. máj. 6. 21:15
Hasznos számodra ez a válasz?
 17/17 anonim ***** válasza:

"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.

2014. máj. 7. 09:51
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!