
 
                           ETT ENKELT EXEMPEL


Av tradition s ska det frsta programmet man skriver i ett nytt sprk bara 
skriva en blygsam hlsning p skrmen. S hr skulle det kunna se ut:

main() /* En blygsam hlsning */
{
   printf("Hello World\n");
}

Lt oss nu dissekera detta msterstycke i detalj.

main()  Varje program mste ha en funktion med det hr namnet. Den utgr pro-
        grammets huvudfunktion, drav namnet, och det r hr som exekveringen
        startar. Parenteserna talar om fr kompilatorn (och oss) att det r
        frga om en funktion.

/*  */  Dessa tecken omger kommentarer i kllkoden. Det r klokt att frska
        kommentera sina program s mycket som mjligt fr att gra dem be-
        gripliga inte bara fr kompilatorn utan ven fr programmerare, och
        ven fr dej sjlv nsta dag. Kompilatorn ignorerar allt som str 
        mellan dessa tecken, vilket r tur eftersom den nd inte skulle 
        begripa det.

{       Den hr sortens parentes omger alltid huvuddelen av en funktion. Den
        anvnds ocks till att sammanfra satser som hr ihop p annat stt.
        Inga andra klamrar eller parenteser fr anvndas till detta ndaml.

printf()  Aha, hr har vi en funktion igen! Detta r en funktion ur standard-
        biblioteket som skter om skrivning p skrmen.

;       Semikolon avslutar alltid en sats. Finns det inget sdant s ser inte
        kompilatorn att satsen slutar, fr i C r skrivformatet helt fritt,
        blanktecken och radmatningar ignoreras. Det gr att skriva hela pro-
        grammet i en enda lng rad av tecken, eller med ett tecken per rad. 
        Fr att gra det lsligt finns det dock en del konventioner.
 
"Hello World\n" Detta r en strngkonstant. Den knnetecknas av att den omges
        av citationstecken. I detta fallet anvnds strngen som ett argument
        till funktionen printf(), och den bestmmer vad som ska skrivas ut. 
        Tecknen \n p slutet betyder ny rad och det r just vad de orsakar 
        nr printf trffar p dem.

}       Hr slutar funktionen main. En hgerklammer mste alltid finnas fr 
        varje vnsterklammer annars sprar kompilatorn ur alldeles.    

Nu bygger vi ut programmet lite utan att ndra dess funktion.

#include <stdio.h>
void main() /* nnu en blygsam hlsning */
{
   printf("Hello ");
   printf("World");
   printf("\n");
}

#include <stdio.h>  Hr ser vi den frsta nyheten. Detta r inget C-kommando
       utan det talar om fr frprocessorn, preprocessorn, att i programmet
       ska den inkludera filen stdio.h, en s kallad headerfil som ingr i
       standardpaketet och som innehller information om in- och utmatningar
       i just detta system. Den behver inte alltid vara med, men det r inte
       s ltt att veta om den kan uteslutas eller inte. Dels beror det p 
       vad programmet ska gra, dels r det systemberoende. Det skadar inte 
       att ta med den fr skerhets skull, frutom det att det frdiga pro-
       grammet blir lite lngre.

void   Detta betyder att funktionen inte ska returnera ngot vrde. Normalt
       frvntas en funktion i C att efter utfrandet lgga in ett vrde i
       ett av maskinens register. Eftersom vr main inte ska returnera ngot
       s deklarerar vi den som void. Annars frvntar sig kompilatorn att
       funktionen returnerar en integer, allts ett heltal. Om man nd inte
       tnker anvnda funktionens vrde s gr det inte s mycket om det r
       rtt typdeklarerat, men det hr till god ton att gra det i alla fall.

Denna gngen har vi delat upp textstrngen i tre delar, men resultatet p 
skrmen blir detsamma eftersom printf fortstter att skriva precis dr den 
slutade sist. Lgg mrke till skrivsttet med de tre printsatserna indragna
tre positioner fr att markera att de hr ihop och utfrs p samma "niv" i 
programmet. Vi kommer senare att se hur man markerar slingor och mer kompli-
cerade satser med ytterligare indragningar. Lgg ocks mrke till hur de bda
klamrarna skrivs p egna rader fr att man lttare ska se hur lngt funktio-
nen strcker sig.

Om vi i stllet vill skriva p flera rader s r det bara att stta in ett 
par \n i printf(). Vi passar ocks p att snygga till utskriften med lite 
verddiga dekorationer.

#include <stdio.h>
void main() 
{
   printf("\n\n");
   printf("         *******************\n");
   printf("         *      Hello      *\n");
   printf("         *      World      *\n");
   printf("         *******************\n");
   printf("\n\n");
}

Nu blev det riktigt tjusigt, eller hur?

Efter denna lilla uppmjukning s knner vi oss mogna att ta itu med variabler
och deklarationer.
