Practical C Programming, 3rd Edition by Steve Oualline

Hvordan C virker

C er designet som en bro mellem programmøren og den rå computer. Ideen er at lade programmøren tilrettelægge et program på en måde, som han let kan forstå. Compileren oversætter derefter sproget til noget, som maskinen kan bruge.

Computerprogrammer består af to hoveddele: data og instruktioner. Computeren pålægger kun lidt eller ingen organisering af disse to dele. Computere er trods alt designet til at være så generelle som muligt. Programmøren skal pålægge computeren sin organisation og ikke omvendt.

Dataene i en computer lagres som en række bytes. C organiserer disse bytes til brugbare data. Datadeklarationer bruges af programmøren til at beskrive de oplysninger, han arbejder med. F.eks.:

int total; /* Total number accounts */

fortæller C, at vi ønsker at bruge et afsnit af computerens hukommelse til at gemme et heltal ved navn total. Vi lader compileren bestemme, hvilke bestemte bytes af hukommelsen der skal bruges; denne beslutning er en mindre bogholderidetalje, som vi ikke ønsker at bekymre os om.

Vores variabel total er en simpel variabel. Den kan kun indeholde ét heltal og kun beskrive én total. En række heltal kan organiseres i et array på følgende måde:

int balance; /* Balance (in cents) for all 100 accounts */

Også her vil C håndtere detaljerne med at pålægge denne organisering på computerens hukommelse. Endelig er der mere komplekse datatyper. Et rektangel kan f.eks. have en bredde, en højde, en farve og et udfyldningsmønster. C lader os organisere disse fire elementer i en gruppe, der kaldes en 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 */};

Pointen er, at strukturer giver programmøren mulighed for at arrangere dataene efter sine behov, uanset hvor enkle eller komplekse disse data er. Oversættelse af denne databeskrivelse til noget, som computeren kan bruge, er compilerens opgave, ikke programmørens.

Men data er kun en del af et program. Vi har også brug for instruktioner. For så vidt angår computeren, ved den intet om instruktionernes layout. Den ved, hvad den skal gøre med den aktuelle instruktion, og hvor den skal hente den næste, men ikke mere.

C er et højniveausprog. Det giver os mulighed for at skrive en erklæring på højt niveau som:

area = (base * height) / 2.0; /* Compute area of triangle */

Compileren vil oversætte denne erklæring til en række kryptiske maskininstruktioner på lavt niveau. Denne type erklæring kaldes en tildelingsanvisning. Det bruges til at beregne og gemme værdien af et aritmetisk udtryk.

Vi kan også bruge kontrolanvisninger til at styre rækkefølgen af behandlingen. Angivelser som f.eks. if- og switch-anvisninger gør det muligt for computeren at træffe enkle beslutninger. Udsagn kan gentages igen og igen ved hjælp af looping-udsagn som while og for.

Grupper af udsagn kan pakkes ind for at danne funktioner. Vi behøver således kun at skrive en generel funktion til at tegne et rektangel én gang, og derefter kan vi genbruge den, når vi ønsker at tegne et nyt rektangel.

C giver programmet et rigt sæt standardfunktioner, der udfører almindelige funktioner som søgning, sortering, ind- og uddata.

Et sæt beslægtede funktioner kan grupperes i en enkelt kildefil. Mange kildefiler kan kompileres og linkes sammen til et program.

Et af de vigtigste mål med C-sproget er at organisere instruktioner i genanvendelige komponenter. Man kan trods alt skrive programmer meget hurtigere, hvis man kan “låne” det meste af sin kode fra et andet sted. Grupper af genanvendelige funktioner kan kombineres til et bibliotek. På denne måde kan du, når du f.eks. har brug for en sorteringsrutine, hente standardfunktionen qsort fra biblioteket og linke den ind i dit program.

Datadeklarationerne, strukturerne og kontrolanvisningerne og andre elementer i C-sproget er ikke til gavn for computeren. Computeren kan ikke se forskel på en million tilfældige bytes og et rigtigt program. Alle C-sprogelementerne er designet til at give programmøren mulighed for at udtrykke og organisere sine ideer klart og tydeligt på en måde, der er skræddersyet til ham, ikke til computeren.

Organisering er nøglen til at skrive gode programmer. I denne bog ved du f.eks. at indholdsfortegnelsen står forrest og indekset bagest i bogen. Vi bruger denne struktur, fordi bøger er organiseret på den måde. Organisering gør denne bog lettere at bruge.

Med C-sproget kan du organisere dine programmer ved hjælp af en enkel, men kraftfuld syntaks. Denne bog går videre end C-syntaksen og lærer dig stilregler, som gør dig i stand til at lave meget læsbare og pålidelige programmer. Ved at kombinere en kraftfuld syntaks med en god programmeringsstil kan du skabe kraftfulde programmer, der udfører komplekse og vidunderlige operationer, men som samtidig er organiseret på en måde, der gør dem lette at forstå, når det er tid til ændringer.

Leave a Reply