Ongelmani tällä kertaa ei koske ohjelman toimintaa vaan enemmänkin "hyviä tapoja". Onko järkevämpää määritellä funktiossa väliaikaiset muuttujat aina uudelleen vai syöttää ne sille main-funktiosta?
näin:
int funktio(int taulu[20][20]) {
int x,y;
for (x = 0;x < 20;x++) {
for (y = 0;y < 20;y++) {
funktio[y][x]=0;
}
}
}vai niin, että x ja y syötetään funktioon valmiina. Funktio tuollaisenaan näyttää varsin toimivalta, mutta entäs jos sitä kutsuttaisiin pelin pääsilmukassa useita kertoa? Onko haittaa luoda aina ja uudestaan samat muuttujat?
Ei ole haittaa, päinvastoin. Jos kyseessä olisi jokin merkittävä luokkaolio, asialla voisi olla merkitystäkin, mutta käytännössä paikalliset muuttujat ovat aina nopeimmat.
Burton: Tuossa tapauksessa hyvä tapa olisi käyttää samaa järjestyssä indeksoinnissa, kuin käytät silmukoissa. Koska x on ulomman for-silmukan muuttuja, sano taulu[x][y] silmukoiden sisässä. Ja yleisesti järjestä for-silmukat sen mukaan, että oikeapuoleisin indeksi muuttuu nopeimmiten.
Se on tyyliseikka, jolla on joskus merkitystä suoritusnopeuden kannalta isompien taulukoiden kanssa. En usko, että tässä se vaikuttaa mitään, koska taulukko on vain 20x20-kokoinen. Perusteluna tähän ohjeeseen on prosessoriarkkitehtuuri ja C:n & C++:n tapa järjestää taulukot muistiin.
Lue niistä joskus lisää. Oma testauskin on aina paikallaan, jos nopeusseikat arveluttavat.
Ylläolevan suhteen olen samaa mieltä herra Metabolixin kanssa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.