C (programspråk)
Wikipedia
C är ett av de vanligaste förekommande programspråken idag tillhörande familjen av Algol-baserade språk, utvecklat vid AT&T Bell Labs 1973. C var en utveckling av språket B som i sin tur var en utveckling av BCPL. Drivande bakom utvecklingen var Dennis M. Ritchie, som också är medförfattare till boken The C Programming Language. Av alla programspråk är kanske C det som haft störst inflytande på programvaruindustrin. Det finns knappast någon del av programvaruvärlden där C inte används eller använts. Vid tidpunkten C utvecklades förenade C en tillräckligt hög abstraktionsnivå med effektivitet. Även om grunderna i C inte alltid är enkla att förstå så klarar språket att uttrycka de mesta som andra procedurella programspråk klarar.
Att C utvecklades hand i hand med UNIX gav språket en mycket stark ställning inom UNIX-industrin, vilken hållit i sig sedan dess. C är alltjämt mycket använt i exempelvis GNU/Linux (vars kärna är skriven i C). C blev tidigt det dominerande språket för utveckling på Microsoft Windows-plattformen men har där i stor utsträckning trängts undan av C++ och Visual Basic. För inbyggda system har C alltjämt en mycket stark ställning, och för många hårdvarunära tillämpningar är C fortfarande det dominerande språket. Starkt bidragande är att C-kompilatorer finns tillgängliga för de flesta arkitekturer.
Programspråket C är standardiserat av ISO. Som alla andra ISO-standarder så revideras den regelbundet. Den första standarden blev klar år 1989 och kallas ibland C89 (officiell beteckning "ISO/IEC 9899:1990", eftersom ISO gav ut den först år 1990). År 1999 blev nästa revision av standarden klar, och den brukar kallas C99 (officiell beteckning "ISO/IEC 9899:1999").
C har legat till grunden vid utvecklingen av det objektorienterade språket C++, samt inspirerat till språk som Java, Pike och C#.
[redigera] Programexempel
"Hello, World!" i C:
#include <stdio.h> int main(void) { printf("Hello, world!"); return 0; }
Ett program där vi kan titta på givna intervaller av multiplikation av ett givet tal i:
#include <stdio.h> int main (int argc, const char * argv[]) { int raknare, lagsta, hogsta; /* raknare = En räknare för att hålla koll på vilken rad vi är på vid utskriften. lagsta = Vårt lägsta värde på i. Med detta värde på i ska utskriften starta. hogsta = Vårt högsta värde på i. Efter i = n ska utskriften sluta. */ printf("Ange lägsta värdet på i: "); scanf("%i", &lagsta); /* Vad ska största värdet på i vara? */ printf("Ange högsta värdet på i: "); scanf("%i", &hogsta); /* Vad ska största värdet på i vara? */ printf("\n i i*i i*i*i\n" "============ ============ ============\n"); for (raknare = lagsta; raknare <= hogsta; raknare++) { /* Uprepning av utskriften. */ printf("%12i ", raknare); /* Utmatning av i^1. */ printf("%12i ", raknare*raknare); /* Utmatning av i^2. */ printf("%12i\n", raknare*raknare*raknare); /* Utmatning av i^3. */ } return 0; /* Allt OK. Avslutar programmet. */ }
Samma program som ovan, men där vi istället anropar funktionerna kvad() och kub() föt att räkna ut i^2 och i^3:
#include <stdio.h> int kvad(int x) { /* Kvadrerar det värde som funktionen matas med. */ return (x * x); } int kub(int x) { /* Kuberar det värde som funktionen matas med. */ return (x * x * x); } int main (int argc, const char * argv[]) { int raknare, lagsta, hogsta, kvadrat, kubik; /* raknare = En räknare för att hålla koll på vilken rad vi är på vid utskriften. lagsta = Vårt lägsta värde på i. Med detta värde på i ska utskriften starta. hogsta = Vårt högsta värde på i. Efter i = n ska utskriften sluta. */ printf("Ange lägsta värdet på i: "); scanf("%i", &lagsta); /* Vad ska största värdet på i vara? */ printf("Ange högsta värdet på i: "); scanf("%i", &hogsta); /* Vad ska största värdet på i vara? */ printf("\n i i*i i*i*i\n" "============ ============ ============\n"); for (raknare = lagsta; raknare <= hogsta; raknare++) { /* Uprepning av utskriften. */ printf("%12i ", raknare); /* Utmatning av i^1. */ kvadrat = kvad(raknare); printf("%12i ", kvadrat); /* Utmatning av i^2. */ kubik = kub(raknare); printf("%12i\n", kubik); /* Utmatning av i^3. */ } return 0; /* Allt OK. Avslutar programmet. */ }