Programmering i ANSI-C

Från Wikibooks
Programmering i ANSI-C

Framsidan.[redigera]

Programmering i ANSI-C.[redigera]

En bok om programspråkets uppbyggnad och funktion, (med programexempel).

Inledning[redigera]

Programspråket "ANSI-C" är den variant av programspråket C som standardiserats av (ANSI).

Själva "språket" är egentligen de regler enligt vilka källkoden måste skrivas för att en c-kompilator skall kunna tolka den och generera objektkod, som sedan kan länkas till ett körbart program.

Källkoden lagras i en eller flera ASCII-textfiler som vanligtvis skapas med en texteditor - och det är källkoden som är det intressanta för oss, då det är där själva programmeringen utförs.

Den största fördelen med att skriva program i ANSI-C är att det finns kompilatorer för språket till i stort sett alla existerande datorplattformar. Den största nackdelen är att språket inte är speciellt kraftfullt, när det gäller t.ex. modularisering och typkontroll, vilket gör det svårt att skriva stora och komplexa program.

Ursprung[redigera]

Programspråket C skapades vid Bell Telephone Laboratories, (då endast en makroassembler), främst av Dennis M. Ritchie som även var den drivande kraften bakom skapandet av operativsystemet UNIX . C och UNIX är starkt knutna till varandra.

Några tips[redigera]

Om du vill prova något av de exempel som förekommer i den här boken, rekommenderas att du inte klipper ut texten från sidorna och sedan klistrar in den i din texteditor. Genom att skriva koden själv lär du dig att hitta tangenterna för de specialtecken som behövs samt hur syntaxen för ANSI-C skall se ut, vilket är viktigt för att allt skall fungera som det är tänkt.

Texteditorer[redigera]

Många utvecklingspaket (se kompilatorer nedan) har ett skal med en inbyggd editor och direktlänkar till kompilator / linker, debugger och liknande. Sådana editorer / utvecklingspaket rekommenderas, speciellt till nybörjare inom programmering då dom är lätta att använda och ofta visas källkoden med olika färger för olika typer av text (eng; syntax highlighting). Motsvarande egenskaper finns hos en del avancerade editorer såsom vi och emacs, och dessa fungerar alltså själva som utvecklingspaket. En viktig aspekt hos editorn är att den använder en font med fast teckenbredd annars blir källkoden mer eller mindre oläsbar. Man bör även minska längden på en [Tab] eller [->|] (tabulering) från det normala 8 till 2, 3, eller 4 för att öka läsbarheten.

Exempel med fast teckenbredd :
char M[] = "Lika många MMMMMMMM"; char I[] = "Lika långa IIIIIIII";

Här samma kod med "normaltext" :

char M[] = "Lika många MMMMMMMM";
char I[] = "Olika långa IIIIIIII";

Länkar:[redigera]

Nedan följer en lista på nätplatser där det går att ladda ner texteditorer till några olika plattformar.

Kompilatorer:[redigera]

De allra flesta C och C++ kompilatorer har stöd för ANSI-C, och går därmed bra att använda för att testa exemplen i den här boken. Har du redan en C/C++ "Devpac" eller liknande så är den troligen utmärkt. Det viktiga är att standardbiblioteken¹ som ingår i ANSI-C finns med.

¹ Se standardbibliotek på tabellsidan för en komplett lista.

Länkar:[redigera]

Nedan följer en lista på nätplatser där det går att ladda ner ANSI-C kompilatorer till några olika plattformar.

Bokens syntax:[redigera]

I den här boken förekommer ett antal standardmetoder att markera olika typer av objekt i texten. Här en lista:

Nyckelord, skrivs alltid i fetstil, (med undantag för källkodsexempel där endast preformaterad normaltext används). Exempel: if, unsigned int, sizeof.
"namn", är en referens till ett funktionsnamn, en variabel eller ett makro till exempel i ett stycke källkod eller i en funktionsdefinition. Namnet är alltid identiskt, (inklusive VERSALER och gemener), med det objekt som referensen avser. Exmpel: "printf", "antal", "EOF", "*pekare".
Tabeller, är en intern länk till en annan sida i boken.
Tabeller -> teckenuppsättning, är en intern länk till en rubrik i boken, (möjligtvis på samma sida som länken finnes).
Programspåket C, (grön länk), är en extern länk, antigen till någon annan sida i wikibooks men vanligare till en sida i wikipedian.