C programmering for nybegyndere

Det første program

Alle manualer for sprog Pascal, Basic og C starter med et program, der skal udskrive "Hello, World". Det er blevet en kotume, måske for at bevise at sproget virker. Nej, det er fordi, får du hul på den så ved du at din compiler (oversætter) virker. I C kan sådant et program se således ud:

#include <stdio.h>

main()
{
    printf("Hello, world\n");
}
hello.c

eller rettere kildeteksten til programmet ser sådan ud. C kræver at kildeteksten skal oversættes af en compiler, der fortolker kildeteksten og omsætter den til noget som kaldes ved flere navne binærkode, maskinsprog, native code m.m. Det oversatte er det virkelige program, kildeteksten også kaldet kildekode er - bare tekst, men oversættelsen med compileren gør det til et program. Vi ser nu at abstraktionen, at kalde kildeteksten for program og det der er intet forgjort i at kalde kildeteksten for programmet, men jeg er nødt til at få alle med fra starten.

Kildeteksten skal tastes ind med en eller anden teksteditor.

  • Lav kildeteksten som i ovenstående boks og gem den under navnet hello.c
  • oversæt programmet med compileren gcc ved skrive kommandoen
#gcc hello.c
  • kør programmet ved at skrive
#./a.out
Hello, world
#

I ovenståen er vist hvordan det nogenlunde vil se ud på en Linux, # skal forestille Linux prompten, altså noget Linux skriver til dig for at vise at den er klar til at modtage kommandoer. Efter prompten er så dine indtastninger og programmet der udskriver noget på næste linie og en prompt igen.

Lad os kigge på programmet. I ethvert C program, uanset størrelse, består det af funktioner og variabler. Funktioner består af sætninger der beskriver handlinger eller operationer som programmet skal gøre. Operationer kan bruge variabler til at lagre værdier. Programmer kan benytte kontrolstrukturer, der giver betingelser for om en given sætning skal udføres eller ikke udføres.

C funktioner er underrutiner (eng. subrutine) som normalt navngives frit efter dit valg, dog med hensyn til visse tegn ikke må bruges, men i ét tilfælde er du bundet af det regelsæt, der skal skubbe programmet i gang. Programmet startes altid ved funktionen main. Ofte vil din main funktion kalde andre funktioner enten nogle som du selv laver eller funktioner som er definerede i et bibliotek (eng. library). Programmet benytter en funktion printf fra et standardbibliotek med standard input/output funktioner. Når man skal bruge funktioner fra et bibliotek inkluderes en header (med include) som vi gør det i programmets første linie

#include <stdio.h>

den skaber definitionen for hvad der findes i et bibliotek eller nogen gange flere biblioteker. Header filen stdio.h inkluder informationer fra standard biblioteket med input/output funktioner og deri ligger definitionen for printf.

Linien

main()

Definerer funktionen main. Mellem paranteserne () kan der indeholdes parametre, i dette tilfælde ingen.

Linierne med kode bruger

{
    printf("Hello, world\n");
}

tuborgparanteser {} og det imellem dem er start og slut for koden til funktionen main.

Funktionen main har en sætning,

printf("Hello, world\n");

som består af et kald til funktionen printf. Man kan overføre data eller værdier, kaldet parametre, til funktioner. Parameteren til funtionen printf er "Hello, world\n", parameteren er data af forskellige typer der passer til definitionen af funktionen, denne parameter er en streng-type. Paranteserne afgrænser parametre, med i dette tilfælde en streng-værdi. Strenge er tekst og afgrænses med cituationstegnet ", i stregen som blev overført til printf er der \n som er ét tegn og tolkes som et linieskift når det udskrives.

printf("Hello,");
printf(" world\n");

Ville give samme resultat, der er altså ingen automatisk linieskift i printf.

Tegnet \ kaldes et escape-tegn som betyder afvigelse eller undtagelse fra almindelig tekst og tegnet efter \ bestemmer hvilken tolkning der gives. Der er flere en \n escape tegn, det kan vi komme til senere, men skal du udskrive et " eller \ tegn gøres det med at sætte \ foran det bliver respektivt til \" eller \\.

Nu gik jeg ud fra at du fik indtastet programmet rigtigt, men lad os prøve med at lave en fejl i programmet, vi fjerner den sidste parantes ) i printf sætningen.

  • Ret hello.c og lav fejlen i editoren og gem filen
#include <stdio.h>

main()
{
    printf("Hello, world\n";
}
hello.c

 

  • Compilér programmet
# gcc hello.c
hello.c: In function `main':
hello.c:5: parse error before `;'
#

Som du ser giver compileren en fejl med teksten "parse error before `;'" helt til venstre fortæller den kildetekstens navn og linienummeret hvor fejlen opstod. Når compileren giver fejl (eng. error) oversætter den ikke programmet, det vil i praksis sige at den ikke genererer et a.out program, den overskriver eller fjerner heller a.out, det gamle program der kunne køre, findes stadigvæk intakt.

I C er der en syntaks som adskiller f.eks. ; er efter en sætning som adskillelse til en evt. ny sætning. Der intet i selve opstillingen af programmets linier der siger compileren hvordan den skal oversætte programmet. Kildeteksten kan f.eks. være

#include <stdio.h>
main(){printf("Hello, world\n");}

og compileren vil oversætte dette til nøjagtigt det samme program. Om du bruger indrykning eller ej er ligegyldigt, det eneste det kan gavne er dig eller de mennesker der skal læse kildeteksten. Det er derfor godt at begynde at danne dig et indtryk af hvordan du gør kildeteksten læsbart for dig selv og andre.

Så længe det kun er dig selv der skal kigge på programmerne kan du selvfølgelig lave dit eget "look", men skal du arbejde sammen med grupper af programmører kan du blive tvunget ind i et stramt regelsæt for hvordan kildeteksten skal se ud.

 

 

 

Produkter Webdesign Få et professionelt webdesign til dine hjemmesider. Bliv fundet Optimér dine hjemmesider til søgemaskiner. Søgeord Find de rigtige søgeord til dine hjemmesider. Visitkort Start din præsentation på Internet med et visitkort. Styr selv Styr selv indholdet på dine hjemmesider med Content Management System. HelpdeskEffektiviser din support-organisation med et Helpdesksystem. Fjern tidrøvere der forhindrer fokus på problemløsning. Bookingsystem System for reservation af lokaler, udstyr, personale. Udskriver arbejdsplaner og ugeskema for opslag.
Citat Husk på at stor kærlighed og store bedrifter kræver store risici.

Dalai Lama



Professionelle løsninger til Internettet. Webdesign, e-handel, cms, søgeoptimering, webhotel, analyse, Intranet mm.