Kezdőoldal » Számítástechnika » Programozás » C-ben szabad karakterrel...

C-ben szabad karakterrel (char) helyettesíteni a más nyelvekben létező byte típust?

Figyelt kérdés

Egy egész szám (int) 4 bájton tárolódik a memóriában, így 2^32 féle értéket vehet fel (előjelesen 2^31 - 1 és - 2°^31 között, beleértve a határokat is). a karakter (char) viszont csak 1 bájtot foglal, azaz 2^8 féle értéket vehet fel, előjelesen 127 és -128 között, őket is belevéve.

Így, ha egy egész szám változóról tudom, hogy nem fog felvenni már 100-nál nagyobb értéket sem, akkor, ha int helyett char típust használok, 3 bájtot spórolok.

Megtehetem, mert egy char típusú változó értéke valójában egy szám, amely az adott karakter ASCII kódja, műveleteket is végezhetek vele.



2019. ápr. 24. 18:47
 1/10 anonim ***** válasza:
De minek tennéd? Miért akarsz byteokon spórolni?
2019. ápr. 24. 18:56
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
Köszi az infót.
2019. ápr. 24. 18:57
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:

Igen, sőt, az byte is, régi téves koncepció hogy az csak karakter lehet. De elárulom neked, hogy egyetlen deka bitet nem spórolsz meg vele, mert a fordító kiegészíti egész memória-szavakra (4 vagy 8 bájt).

Esetleg keress rá az attribute=packed lehetőségre.

De a cpu működés miatt lassabb is lenne. Programozásnál nem szokás mikrooptimalizálást végrehajtani, mert általában csak ront mindenen. A fordítók elég jó munkát végeznek optimalizálásban, ha megkéred őket.

2019. ápr. 24. 19:19
Hasznos számodra ez a válasz?
 4/10 tabaki ***** válasza:
Persze, szokás így is használni. Az unsigned char pedig teljesen megfeleltethető a klasszikus byte típusnak.
2019. ápr. 24. 19:21
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:

Olyan 4 bájton pl. kétjegyű számot tárolni, mint teremgarázst építeni egy biciklinek. A szám elfér 1 bájton, 3 kihasználatlan marad. 3 db másik ilyen kis szám tárolására szánt, karakter típusú változó is elfér mellette akár. + a feladatban, aminek kapcsán meglátszott ennek a lehetősége, ez a helyzet fennáll.

Ez ellen szólhat, hogy a feladat szerint ezek a változók a halomban lesznek tárolva, amelyben bőségesen van hely.

2019. ápr. 24. 19:48
 6/10 A kérdező kommentje:

#3, bocsi, hamarabb írtam, mint elolvastam


Ez csalás.

Ezek szerint típusok terén nem érdemes variálni.

Viszont jobb akkor ezeket észben tartani, ha kísérletezni kezdünk

2019. ápr. 24. 20:08
 7/10 anonim ***** válasza:

ma 19:48

De te most mit akarsz programozni, első éves vagy egyetemen és ez a házi, vagy mi? Mert akkor a tanár is le fog cseszni, hogy olvasható legyen a kódod, és ne "optimalizált".

2019. ápr. 24. 20:08
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:

#5: Az ilyen jellegű optimalizálásnak akkor van jelentősége, ha biztosan szükség van rá. Valami ősrégi beágyazott rendszerre kell fejleszteni az alkalmazást, ahol néhány kB memória van csak? Ha nem, akkor nem érdemes ezzel foglalkozni, mert csak feleslegesen bonyolít.

Arról nem beszélve hogy a legtöbb optimalizálásnak van valami hátulütője, például memóriára optimalizálásnál általában lassabb futást kapunk, míg futásidőre optimalizálásnál rosszabb memóriagazdálkodást. Biztos jó ez nekünk?

2019. ápr. 24. 20:31
Hasznos számodra ez a válasz?
 9/10 A kérdező kommentje:

[link]

Pontosan ahogy #3 írta

2019. ápr. 24. 21:41
 10/10 A kérdező kommentje:
Azaz ennek gyakorlati jelentősége akkor van, ha a fordítót is bevonjuk
2019. ápr. 24. 21:48

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!