Başlatılmamış yerel değişken hızlı rasgele sayı üreteci.
Başlatılmamış yerel değişken tanımsız davranış olduğunu biliyorumİKve ayrıca değeri olabilir tuzak beyan eden etkileyebilir başka bir işlem, ama bazen kullanmak istiyorum rasgele sayı için görsel ve fazla kullanımı diğer kısmı program, örneğin, ayarlanmış bir şey ile rastgele renkli bir görsel efekt, örneğin:
void updateEffect(){
for(int i=0;i<1000;i ){
int r;
int g;
int b;
star[i].setColor(r%5,g%5,b%5);
bool isVisible;
star[i].setVisible(isVisible);
}
}
bu daha hızlı olur
void updateEffect(){
for(int i=0;i<1000;i ){
star[i].setColor(rand()%5,rand()%5,rand()%5);
star[i].setVisible(rand()%2==0?true:false);
}
}
ve ayrıca daha hızlı diğer rasgele sayı üreteci.
CEVAP
Diğerleri belirttiği gibi, bu Tanımsız Davranış (SNS).
Uygulamada, o (muhtemelen) aslında (tür). Okuma başlatılmamış bir kayıt 86[-64] mimarileri edecek son derece kaliteli çöp sonuçları, ve muhtemelen istemiyorum kötü (karşıt olarak, örneğin, Sürüm, nerede registers can be flagged as invalid, böylece okur yaymak hataları gibi NaN).
İki ana problem vardır:
Özellikle rastgele olmayacak.Bu durumda, yığın okuyorsun, orada ne varsa, önceden alacaksın. Etkili bir şekilde rastgele, tamamen yapılandırılmış olabilir, şifre, on dakika önce, ya da büyükannenin kurabiye tarifini girdi.
Kötü ('B') . Sermaye uygulama kodunuzu bu sürüngen gibi şeylere izin vermek. Teknik olarak, derleyici tanımlanmamış bir değişken okumak
reformat_hdd();
her zaman takın.olmazyine de yapmamalısın. Güvenli olmayan şeyler yapmaz. Ne kadar az istisnalar yapmak, daha güvenli tesadüfi hatalardantümzaman.İK ile daha önemli bir mesele tüm programın davranışı tanımsız yapar. Modern Derleyiciler bu kod veya go back in time bile büyük bozkırlarında elide için kullanabilirsiniz. İK ile oyun Victoria Mühendisi canlı bir nükleer reaktörün sökülmesi gibi. Yanlış gitmek için milyarlarca şey var, ve muhtemelen temel ilkeleri ve uygulanan teknolojinin yarısı bile anlamayacak.olabilirtamam, ama yine de bunun olmasına izin vermemeliyiz. Ayrıntılar için diğer güzel cevaplar bak.
Ayrıca, seni kovardım.
Nasıl bir şifreli rasgele sayı üreteci...
Belirli bir aralıktaki Javascript üret...
Objective-C Rasgele Sayı üretme...
Nasıl C rasgele tamsayı sayı üretmek m...
Yerel bir değişken'in hafıza kaps...