31. maj 2006 - 10:36Der er
8 kommentarer og 1 løsning
Static array
Jeg er i gang med at kode et kryds og bolle-spil. I den forbindelse har jeg en rekursiv funktion. I den starter jeg med at initialisere et array af chars. Dette array bruges til at gemme de input, som brugerne kommer med. Når funktionen kalder sig selv, bliver værdierne i arrayet ikke gemt. Hvordan kan det være?
Jeg har løst problemet med at sætte static foran, når jeg initialiserer det, men kunne godt tænke mig at vide, hvorfor det er nødvendigt. Array-navnet peger er jo en pointer, som derfor ikke burde ændres ved at jeg kalder funktionen igen?
Jeg antager at vi kun snakker om static op lokale variable (static har en del forskellige betydninger i C/C++).
Jeg vil mene at det er uhyre sjaeldent at man bruger den i C++.
Den ses engang i C naar man kun vil have koert noget kode foerste gang en funktion kaldes og den slags.
I multithreaded sammenhaeng er den lige saa farlig som en global variabel. Og svaere at spotte.
Saa jeg vil maaske ikke gaa saa vidt som at kalde det daarlig coding style. Men jeg vil mene at det er meget meget sjaeldent at det er bedste mulighed.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.