C nyelven a konstans deklarálásnak vannak szabályai? Optimalizálás esetén kiveszi a tömböt a lefordított forrásból.
Figyelt kérdés
Deklaráltam egy sokezer elemet tartalmazó tömböt a következő képpen:
long tomb [150000]= {
...
...
};
Ilyen módon deklaráltam. Tesztelni szeretnék valamit, azért a nagy tömb... Normális, hogy az optimalizálás módosítja a kódot?
Ubuntu alatt GCC már a -O2 kapcsoló hatására is ezt teszi.
2015. jan. 23. 16:23
11/14 A kérdező kommentje:
Köszönöm
2015. jan. 23. 17:33
12/14 anonim válasza:
Ha nem szeretnéd hogy az optimizer hozzányúljon a tömbödhöz, a volatile kulcsszóval deklaráld:
long volatile tomb[150000]
Azért szedi ki az optimiter, mert látja hogy számolsz vele, és utána sose hivatkozol rá, és azokat a változókat kioptimalizálja amikre nincs hivatkozás.
13/14 anonim válasza:
Előre sajnálom szegény stack-et. 15ezer long-gal már van egy kis dolga :D
14/14 A kérdező kommentje:
Ha heap-ben lenne, annak is ugyanannyi dolga lenne :D
2015. jan. 30. 06:49
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!