Innehållsförteckning:
Video: Section 4 2024
När du inte kan ta reda på vad som händer med ett C-program och du inte vill köra det genom debuggeren (eller när du inte inkluderade felsökningsalternativet) kan du använda funktionerna printf () och puts () som dina felsökningsvänner.
Hur man dokumenterar problem
Antag att koden har en funktion som tar emot variabel x , men på något sätt visas variabel x aldrig upp. Sätt följande rad i koden:
printf ("värde av" x "vid linje 125:% dn", x);
Detta uttalande kan faktiskt visas på flera ställen, spår värdet på variabeln x när den flyttas via din kod. Beviljas, med hjälp av klockan fönster med debugger på skulle vara bättre, men ibland, använder printf () är mycket snabbare.
Om du inte spårar en variabel och du bara vill veta varför en bit av kod inte körs, sätt in ett puts () -sättande, något som detta:
sätter ("Du måste här");
När du ser den föregående texten i utmatningen vet du att koden närmar sig men kanske inte exekveras. Det är när du pratar genom koden, leta efter ett dubbelliknande tecken när du menade att använda ett enda lika tecken och prova andra knep.
Även om du sätter in en printf () eller puts () -sats i din kod kanske inte är så graciös som att använda en debugger, och det säger verkligen inte "Problemet är här", det är inte ett dåligt arbete. Kom bara ihåg att dra tillbaka påståenden igen!
Hur man sparar kommentarer för framtiden-du
En annan sak du kan göra för att hjälpa till med att lösa otillbörlig väv är att bara beskriva problemet i koden med hjälp av kommentarer. Det kanske inte löser problemet nu, men för framtiden - du tittar på koden längs linjen är det en riktig hjälp; det slår försök att upptäcka boo-boo igen.
Till exempel:
för (y = x + a; yI det här exemplet påminner notan framtiden att uttalandena inte gör vad de är avsedda, plus det erbjuder framtida- mig ett förslag på vad man ska leta efter i en lösning.
Du kan också använda kommentarer för att erbjuda framtida förslag om hur du förbättrar koden, saker att strama upp eller nya funktioner du bara inte har tid att lägga till för närvarande