Kezdőlap › Fórumok › Programozás › Forráskód nem hordozható?
- This topic has 80 hozzászólás, 9 résztvevő, and was last updated 16 years, 10 months telt el by
uzsolt.
-
SzerzőBejegyzés
-
2008-12-15-21:28 #2177778
Te valami warez linugzot használsz, warez gcc-vel.
2008-12-15-21:28 #2177779Te valami warez linugzot használsz, warez gcc-vel.
2008-12-15-21:29 #2177780zoltan22 wrote:Code:void takarit(void){
int memoria[1000]; // ez ugyebar helyi valtozo, a veremben tarolva
for(int i=0; i<1000; i++)
memoria[i] = 0;
i = 0; // i helyet is
}Elmeletileg ha ezt meghivjuk egy „problemas” fuggveny elott (mielott a valtozokat deklaraljuk), akkor minden helyi valtozo erteke 0 lesz. Gyakorlatilag ez mukodhet?
Nem biztos, a statikus paraméterek mindig a veremben tárlódnak (pl. „void func (char buf[200])”), de rémlik valami olyasmi, az újabb gcc esetén a lokális változók is egy ELF szekcióban tárolódnak (talán .tss), ami a program indulásakor a memóriába másolódik. Ez attól szálbiztos, hogy alapból használja a kernel TLS (thread-local storage) képességét. Ez okozhat olyan jelenséget, hogy a véletlenszerű érték nem véletlen, mert fordításkor kap egy értéket ami később nem változik meg. Ha ez így van, akkor egy -ftls-model=”local-dynamic” gcc paraméter után a progi vígan dobálja a sok NaN-t. Nektek melyik gcc van fent (nekem a 4.3.0)?
2008-12-15-21:29 #2177781zoltan22 wrote:Code:void takarit(void){
int memoria[1000]; // ez ugyebar helyi valtozo, a veremben tarolva
for(int i=0; i<1000; i++)
memoria[i] = 0;
i = 0; // i helyet is
}Elmeletileg ha ezt meghivjuk egy „problemas” fuggveny elott (mielott a valtozokat deklaraljuk), akkor minden helyi valtozo erteke 0 lesz. Gyakorlatilag ez mukodhet?
Nem biztos, a statikus paraméterek mindig a veremben tárlódnak (pl. „void func (char buf[200])”), de rémlik valami olyasmi, az újabb gcc esetén a lokális változók is egy ELF szekcióban tárolódnak (talán .tss), ami a program indulásakor a memóriába másolódik. Ez attól szálbiztos, hogy alapból használja a kernel TLS (thread-local storage) képességét. Ez okozhat olyan jelenséget, hogy a véletlenszerű érték nem véletlen, mert fordításkor kap egy értéket ami később nem változik meg. Ha ez így van, akkor egy -ftls-model=”local-dynamic” gcc paraméter után a progi vígan dobálja a sok NaN-t. Nektek melyik gcc van fent (nekem a 4.3.0)?
2008-12-15-21:37 #2177782kisbetu wrote:Te valami warez linugzot használsz, warez gcc-vel.Csatlakoztam a klubhoz.
2008-12-15-21:37 #2177783kisbetu wrote:Te valami warez linugzot használsz, warez gcc-vel.Csatlakoztam a klubhoz.
2008-12-15-21:45 #2177784gabaman wrote:Nektek melyik gcc van fent (nekem a 4.3.0)?Nalam 4.2.2, uhu 2.1-eshez „gyarilag” csomagolt.
2008-12-15-21:45 #2177785gabaman wrote:Nektek melyik gcc van fent (nekem a 4.3.0)?Nalam 4.2.2, uhu 2.1-eshez „gyarilag” csomagolt.
2008-12-15-21:54 #2177786gcc (PLD-Linux) 4.3.2 20080911 (release)
2008-12-15-21:54 #2177787gcc (PLD-Linux) 4.3.2 20080911 (release)
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.

legutóbbi hsz