Kezdőoldal » Számítástechnika » Programozás » C-C++: Ugyanúgy viselkedik a...

C-C++: Ugyanúgy viselkedik a két union?

Figyelt kérdés

Első verzió:


union Point3D

{

struct

{

double x,y,z;

};

struct

{

double d[3];

};

};


Második verzió:


union Point3D

{

struct

{

double x,y,z;

};

double d[3];

};


Okozhat működésbeli hibát az union-t használó függvényeknél, ha átírom az első verziót a másodikra?



2014. márc. 3. 19:27
1 2
 1/11 anonim ***** válasza:
74%

mivel a double egész*4 bájtos, így mindegy, de még ha nem lenne, talán akkor is


a memóriában elhelyezkedhet úgy a struct hogy van rajta egy 4 bájtra kiegészítő padding, de az is lehet, hogy nincs (most itt nem fenyeget ez a veszély)

2014. márc. 3. 20:08
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
33%

> Okozhat működésbeli hibát az union-t használó függvényeknél, ha átírom az első verziót a másodikra?


Nem, sőt a második nekem eleve jobbnak tűnik.


Előző kommentáló, a double 8 bájtos, nem 4.

2014. márc. 4. 08:53
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
66%

látom tudsz olvasni

ráadásul olyat nem mondjunk, hogy a double 8 bájtos

2014. márc. 4. 20:00
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:
0%
-j
2014. márc. 4. 20:00
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:
33%

Hát pedig a kérdező architektúráján az valszeg 8 bájtos lesz. :)

De "egész*4 bájtos" biztosan nem.


[link]

[link]

2014. márc. 5. 10:16
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:
66%
meséld már el, hogy 2*4 az nem 8..
2014. márc. 5. 11:39
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:
24%

2*4 az 8, de a double nem azért 8, mert 2*4.

Az int méretének semmi köze az IEEE 754 szabványhoz. Mindegy, hogy az int 8,16,32,akárhány bites, a double attól még ugyanúgy épül fel.

2014. márc. 5. 11:57
Hasznos számodra ez a válasz?
 8/11 iostream ***** válasza:
75%

Azt senki sem állította, hogy azért 8, mert 2*4. Az állítás abból a szempontból vizsgálta a helyzetet, hogy a rendszer általában szereti a 4 byte-ra alignolt címeket, és mivel a double által foglalt hely 4 egész számú többszöröse, ez nem fog bekavarni.

Érted most már? Mindenki tudja, hogy szabványok alapján épülnek fel az FPU-k, és csak te beszélsz erről, mi egész másról beszélünk.

2014. márc. 5. 12:47
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
17%

Hát iostream, én ezt: "egész*4 bájtos", úgy értelmezem, hogy az egész méretétől függ. Ha meg azt jelenti, hogy 4 többszörösei, akkor is marhaság. Ne hülyítsük már az idetévedőket.

Na léptem...

2014. márc. 5. 12:54
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:
Az első hozzászóló pongyola megfogalmazása miatt eddig összesen három fölösleges vita alakult ki.
2014. márc. 5. 18:25
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!