" Skrive i C eller C + + er som å kjøre en motorsag med alle sikkerhetsvakter fjernet , " er et sitat tilskrevet forfatteren Bob Gray. Mens C er ikke fullt så farlig som Mr. Gray antyder, er det en kraftig språk som gir programmereren lavnivå tilgang til programmering miljø uten mange begrensninger . Forfatterne av C , Brian Kernighan og Dennis Ritchie , sier , "C beholder den grunnleggende filosofi som programmerere vet hva de gjør , det krever bare at de oppgir sine intensjoner eksplisitt. " Det er den som sier eksplisitt at ofte fører programmerere problemer . Instruksjoner
en
Begynn rekke subscripts med en null i C. Mange programmerere starte tilgang en matrise med array_variable [ 1 ] , som faktisk er det andre elementet i matrisen . Det første elementet er array_variable [0]. Langs de samme linjene, åpner den samme programmerer deretter ett element forbi enden av tabellen. For en matrise med 10 elementer , de subscripts variere fra 0 til 9, ikke 1-10 . Tilgang senket nummer 10 er tilgang til ellevte element i matrisen , som ikke eksisterer . Utilsiktet tilgang til minne utenfor de angitte variabler kan føre til et program for å avslutte unormalt - . Aldri en god ting
2
Initialiser variabler før du bruker dem . En vanlig feil i C -programmering er å bruke en variabel før lagring noe i variabelen , som er spesielt plagsom når du arbeider med pekere . For eksempel, hvis du vil at summen av en rekke tall angitt av brukeren , må du initialisere summen variabel til å begynne på null. Mens konstant og globale variabler som standard til null , andre variabler ikke.
3
Bruk symbolske konstanter eller konstant variabler for å unngå tilfeldige tall i kroppen av programmet. For eksempel, hvis behandling av et 15 element matrise, skape en symbolsk konstant for størrelsen på arrayet stedet for å bruke 15 i kroppen av en for løkke . Hvis du endrer størrelsen på array , trenger du bare å endre den symbolske konstant. Dette unngår C programmeringsfeil av å øke størrelsen på en matrise , men glemmer å behandle alle elementene på grunn av en konstant i for loop.
4
sammenligne verdier med en == i C. = symbolet brukes for 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 : en
if ( nevneren == 0 ) printf ("Feil - kan ikke dele på null \\ n" );
uttalelsen : en
if ( nevner = 0 ) printf ("Feil - kan ikke dele på null \\ n ");
setter nevneren variabelen til null , mislykkes så hvis sjekk siden oppdrag ta verdien av det som er tildelt , null i dette tilfellet. Du har nå opprettet problemet du sjekket for, nevneren er null fordi du sette den til null
.