C Programmering feil og hvordan du løser dem

C Programmering feil og hvordan du løser dem


"Å skrive i C eller C ++ er som å kjøre en motorsag med alle sikkerhetsvakter fjernet," er et sitat tilskrives forfatteren Bob Gray. Mens C er ikke fullt så farlig som Mr. Gray tilsier, er det et kraftig språk som gir programmereren lavnivå tilgang til programmeringsmiljø uten mange restriksjoner. Forfatterne av C, Brian Kernighan og Dennis Ritchie, sier, "C beholder den grunnleggende filosofien at programmerere vet hva de gjør, det krever bare at de statlige sine intensjoner eksplisitt." Det er den som sier eksplisitt at ofte fører programmerere problemer.

Bruksanvisning

1 Begynn matrise senket med en null i C. Mange programmerere begynner å få tilgang til en rekke med array_variable [1], som egentlig er det andre elementet i matrisen. Det første elementet er array_variable [0]. Langs de samme linjer, den samme programmerer åpner deretter en element forbi enden av rekken. For en oppstilling av 10 elementer, indeksene variere fra 0 til 9, ikke en til 10. Tilgang senket nummer 10 er tilgang til ellevte element i matrisen, som ikke eksisterer. Utilsiktet tilgang til minne utenfor variabler dine utpekte kan føre til et program til å avslutte unormalt - aldri en god ting.

2 Initial variabler før du bruker dem. En vanlig feil i C-programmering er å bruke en variabel før lagring noe i variabel, noe som er særlig problematisk når det arbeider med pekere. For eksempel, hvis du vil at summen av en rekke tall oppgitt av brukeren, må du initialisere summen variabelen for å begynne på null. Mens konstant og globale variabler som standard til null, andre variabler ikke.

3 Bruk symbolske konstanter eller konstante variabler for å unngå tilfeldige tall i kroppen av programmet. For eksempel, hvis behandlingen av en 15 element array, lage en symbolsk konstant for størrelsen på array istedenfor å bruke 15 i kroppen av en for loop. Hvis du endrer størrelsen på array, trenger du bare å endre den symbolske konstant. Dette unngår C programmeringsfeil av å øke størrelsen av en matrise, men glemmer å behandle alle elementene på grunn av en konstant i den av sløyfen.

4 Sammenligne verdier med et == i C. = Symbolet brukes til oppdrag ikke sammenligninger og er en vanskelig feil å finne i et program. En if setning som sjekker for å se om en nevner er null før du utfører en divisjon skal se slik ut:

if (nevner == 0) printf ( "Feil - kan ikke dele med null \ n");

Uttalelsen:

if (nevner = 0) printf ( "Feil - kan ikke dele med null \ n");

setter nevneren variabelen til null, svikter så den hvis sjekk siden oppgaver ta verdien av det som er tildelt, null i dette tilfelle. Du har nå opprettet problemet du sjekket for; nevneren er null fordi du setter den til null.

Hint

  • Programmer som fungerer uberegnelig er vanligvis programmer med hukommelsesproblemer. Se etter initialisert pekere eller array-indeksene som er utenfor grensene for hva du har tildelt.