Practical C Programming, 3rd Edition by Steve Oualline
Hur C fungerar
C är utformat som en bro mellan programmeraren och den råa datorn. Tanken är att låta programmeraren organisera ett program på ett sätt som han lätt kan förstå. Kompilatorn översätter sedan språket till något som maskinen kan använda.
Datorprogram består av två huvuddelar: data och instruktioner. Datorn ålägger dessa två delar liten eller ingen organisation. När allt kommer omkring är datorer utformade för att vara så generella som möjligt. Programmeraren bör påtvinga datorn sin organisation, inte tvärtom.
Data i en dator lagras som en serie bytes. C organiserar dessa bytes till användbara data. Datadeklarationer används av programmeraren för att beskriva den information han arbetar med. Till exempel:
int total; /* Total number accounts */
talar C att vi vill använda en sektion av datorns minne för att lagra ett heltal som heter total
. Vi låter kompilatorn bestämma vilka särskilda bytes av minnet som ska användas; det beslutet är en mindre bokföringsdetalj som vi inte vill oroa oss för.
Vår variabel total
är en enkel variabel. Den kan bara innehålla ett heltal och beskriver bara en totalsumma. En serie heltal kan organiseras i en array på följande sätt:
int balance; /* Balance (in cents) for all 100 accounts */
Även här kommer C att sköta detaljerna för att påtvinga datorns minne denna organisation. Slutligen finns det mer komplexa datatyper. En rektangel kan till exempel ha en bredd, en höjd, en färg och ett utfyllnadsmönster. C låter oss organisera dessa fyra objekt i en grupp som kallas struktur.
struct rectangle { int width; /* Width of rectangle in pixels */ int height; /* Height of rectangle in pixels */ color_type color; /* Color of the rectangle */ fill_type fill; /* Fill pattern */};
Punkten är att strukturer gör det möjligt för programmeraren att ordna data så att de passar hans behov, oavsett hur enkla eller komplexa dessa data är. Översättning av denna databeskrivning till något som datorn kan använda är kompilatorns uppgift, inte programmerarens.
Men data är bara en del av ett program. Vi behöver också instruktioner. När det gäller datorn vet den ingenting om hur instruktionerna är utformade. Den vet vad den gör med den aktuella instruktionen och var den ska hämta nästa instruktion, men inget mer.
C är ett högnivåspråk. Det låter oss skriva ett uttalande på hög nivå som:
area = (base * height) / 2.0; /* Compute area of triangle */
Compilatorn översätter detta uttalande till en serie kryptiska maskininstruktioner på låg nivå. Den här typen av uttalande kallas för ett tilldelningsmeddelande. Det används för att beräkna och lagra värdet av ett aritmetiskt uttryck.
Vi kan också använda kontrollutsagor för att styra bearbetningsordningen. Uttalanden som if- och switch-uttalanden gör det möjligt för datorn att fatta enkla beslut. Uttalanden kan upprepas om och om igen genom att använda looping-utsagor som while och for.
Grupper av uttalanden kan förpackas för att bilda funktioner. På så sätt behöver vi bara skriva en allmän funktion för att rita en rektangel en gång, och sedan kan vi återanvända den närhelst vi vill rita en ny rektangel.
C förser programmet med en rik uppsättning standardfunktioner som utför vanliga funktioner som t.ex. sökning, sortering, inmatning och utmatning.
En uppsättning relaterade funktioner kan grupperas tillsammans i en enda källfil. Många källfiler kan kompileras och länkas samman till ett program.
Ett av de viktigaste målen med C-språket är att organisera instruktioner i återanvändbara komponenter. Du kan trots allt skriva program mycket snabbare om du kan ”låna” det mesta av din kod från någon annanstans. Grupper av återanvändbara funktioner kan kombineras till ett bibliotek. På detta sätt kan du, när du till exempel behöver en sorteringsrutin, hämta standardfunktionen qsort
från biblioteket och länka in den i ditt program.
Datadeklarationerna, strukturerna och kontrollinstruktionerna och andra delar av C-språket är inte till för datorns skull. Datorn kan inte se skillnad på en miljon slumpmässiga bytes och ett riktigt program. Alla C-språkets element är utformade för att programmeraren ska kunna uttrycka och organisera sina idéer tydligt på ett sätt som är skräddarsytt för honom, inte för datorn.
Organisering är nyckeln till att skriva bra program. I den här boken vet du till exempel att innehållsförteckningen finns på framsidan och indexet på baksidan. Vi använder den här strukturen eftersom böcker är organiserade på det sättet. Organiseringen gör den här boken lättare att använda.
Språket C låter dig organisera dina program med hjälp av en enkel men kraftfull syntax. Den här boken går längre än C-syntaxen och lär dig stilregler som gör att du kan göra mycket läsbara och pålitliga program. Genom att kombinera en kraftfull syntax med en bra programmeringsstil kan du skapa kraftfulla program som utför komplexa och underbara operationer, men som också är organiserade på ett sätt som gör dem lätta för dig att förstå när det är dags för ändringar.
Leave a Reply