Skillnad mellan versioner av "Tips och Trick i C"

Från Täpp-Anders
Hoppa till: navigering, sök
(Antal element i en array)
Rad 27: Rad 27:
 
}
 
}
 
</pre>
 
</pre>
 +
Däremot kan koden vara direkt farlig om du har en pekare som deklareras separat.
 +
 
[[category:Programmering]]
 
[[category:Programmering]]
 
[[category:Algoritmer]]
 
[[category:Algoritmer]]

Versionen från 24 februari 2013 kl. 16.20

Varning.jpg

Denna sida är under konstruktion och ej färdig ännu och därför kan väsentliga detaljer fortfarande saknas.

Tilldelning

Problem: I C är syntaxen för tilldelning, =, och för jämförelse, ==, lika nog för att ett litet misstag skall direkt orsaka rejäla problem. Ett exempel är jämförelser inuti if()-satser som kan orsaka smärre katastrofer om man slarvar.

Ponera att vi vill jämföra en variabel a med värdet 5 för att se om variabeln har samma eller ett annat värde. Vi slarvar dock och råkar i stället skriva:

if(a = 5)

Om variabeln a är av sådant slag att jämförelsen fungerar så fungerar även tilldelningen. I ovanstående tilldelas a värdet 5 och eftersom det är skilt från noll innebär det att satsen alltid kommer vara sann.

if(5 = a)

Skriver man på ovanstående sätt så kommer man direkt få ett kompilatorfel vilket gör att hela problemet kan undvikas. Anledningen är naturligtvis att variabeln a:s innehåll ej kan tilldelas en konstant som 5.

Antal element i en array

C saknar denna funktion men du kan implementera den själv enkelt genom följande kod:

{
   my_type array[100];

   for (i = 0; i < (sizeof array / sizeof *array); i++)
   {
      /* ... */
   }
}

Däremot kan koden vara direkt farlig om du har en pekare som deklareras separat.