Annons

Att lära sig programmera är en kumulativ erfarenhet. Förutom att lära dig syntaxen för ditt valda språk, måste du också lära dig de allmänna principerna som alla programmeringsspråk använder.

Att förstå och lära sig C-programmering kan vara skrämmande, men det finns några grundläggande idéer som är värda att bekanta dig med när du börjar. Ett enkelt projekt är ett bra sätt att lära sig grunderna i C.

Så var ska du börja? Genom att säga hej!

1. Hej världen!

Den första delen av nästan varje kodningskurs är Hej världen program. Att gå igenom det i detalj belyser några av de sätt som C skiljer sig från andra språk. Till att börja med, öppna upp en textredigerare eller IDE Textredigerare vs. IDE: Vilken är bättre för programmerare?Att välja mellan en avancerad IDE och en enklare textredigerare kan vara svårt. Vi erbjuder lite insikter som hjälper dig att fatta det beslutet. Läs mer efter eget val och ange denna kod:

#omfatta /* detta är ett Hello World-skript i C */ int main (void) { printf("Hej världen! \n"); returnera 0; }
instagram viewer

Denna korta kod skrivs ut till konsolen innan programmet avslutas. Spara den någonstans lätt att komma ihåg som Hej C. Nu måste du kompilera och bygga din fil.

Att få det att köra

Vanligtvis behöver du inte installera någon ytterligare programvara på din dator för att köra C-skript. Öppna ett terminalfönster (eller kommandotolken om du kör Windows) och navigera till katalogen där du sparade skriptet.

Hur du kompilerar och kör din fil varierar från system till system:

  • Windows-användare: Gör din fil körbar genom att skriva cl hej.c och tryck på enter. Detta kommer att skapa hello.exe i samma mapp, som du kan köra genom att skriva Hej.
  • Linux- och macOS-användare: Typ gcc -o hej hej.c och tryck på enter för att göra den körbar och kör den genom att skriva ./Hej.

Oavsett vilken metod du använder, bör körning av ditt skript visa dig detta:

Utdata som visar resultaten av en Hello World! skiss i C

Om det inte fungerade på Windows, se till att du kör kommandotolken i administratörsläge. För macOS kan du behöva installera Xcode från App Store och följ dessa steg från StackOverflow.

Låt oss nu titta på programmet rad för rad för att se hur det fungerar och förbättra det!

Under the Hood: Understanding the C Language

Förprocessorer

Skriptet du just skapade börjar med att ett bibliotek ingår.

#omfatta 

Den första raden i skriptet kallas a förprocessor. Detta utförs innan resten av skriptet kompileras. I det här fallet säger det åt skriptet att använda stdio.h bibliotek. Det finns ett stort antal förprocessorer tillgängliga för olika uppgifter.

Stdio.h tar hand om att få input från programmets användare och skicka tillbaka information till dem.

/* detta är ett Hello World-skript i C */

Denna nästa rad är en kommentar. Snedstjärnan och stjärnan säger åt kompilatorn att ignorera allt mellan den och den avslutande stjärnan och snedstjärnan. Även om detta kan tyckas meningslöst, är det en viktig vana att ge dig själv och andra tydliga anteckningar om vad din kod gör.

Huvudfunktionen

int main (void)

Varje C-program måste ha en huvud fungera. Main är en funktion som returnerar ett heltal, betecknat med int. Hakparenteserna efter main är för dess argument, men i det här fallet tar det inga, vilket är anledningen till att du använder tomhet nyckelord.

Du skriver koden som ska utföras mellan två lockiga hängslen.

{ printf("Hej världen! \n"); returnera 0; }

Inuti funktionen anropar du printf() fungera. Precis som main(), printf är en funktion. Skillnaden är att printf är en funktion i stdio bibliotek som du inkluderade i början.

Printf skriver ut vad som helst inom parentes, mellan citattecken, till konsolen. De \n är en flyktsekvens som kallas newline, som säger åt kompilatorn att hoppa till nästa rad i konsolen innan du fortsätter.

Observera att dessa rader slutar på semikolon, som kompilatorn använder för att dela upp en uppgift från nästa. Var noga uppmärksam på dessa semikolon – att missa dem är den främsta orsaken till att saker inte går som det ska!

Slutligen kommer funktionen tillbaka med siffran 0, vilket avslutar programmet. De main() funktion måste alltid returnera ett heltal, och retur = 0; signalerar till datorn att processen lyckades.

Att förstå varje steg i det här skriptet är en bra start för att lära sig både C-syntax och hur språket fungerar.

2. Skapa dina egna C-funktioner

Du kan skapa dina egna anpassade funktioner i C. Istället för att skriva ut Hello World i huvudfunktionen, skapa en ny funktion för att göra det åt dig.

void print_for_me() { printf("Hej världen! \n"); }

Låt oss bryta ner detta.

tomhet är ett nyckelord som betyder att följande funktion inte returnerar något.

print_for_me() är namnet på funktionen, och de tomma parenteserna visar att den inte kräver argument för att fungera. Ett argument är vilken information som helst som ska skickas vidare till en funktion för att få den att fungera - senare kommer du att lägga till ett eget argument för att ändra utdata! Notera: Detta är inte samma sak som main()-funktionen ovan som använde void. Den funktionen kan inte ta argument, medan den här kan (men i det här fallet behöver den inte).

Kodblocket borde vara bekant för dig – det är bara det tryckta uttalandet från den ursprungliga huvudfunktionen.

Nu kan du anropa denna funktion från din huvudfunktion.

int main (void) { print_for_me(); print_for_me(); returnera 0; }

Här kan du se en fördel med att använda din egen funktion. Snarare än att skriva printf(“Hej världen! \n”) varje gång kan du anropa funktionen två gånger.

Just nu kanske det inte verkar så viktigt, men om din print_for_me-funktion innehöll många rader kod, är det en stor tidsbesparing att kunna ringa den så enkelt!

Hej världen utmatar två gånger genom flera funktionsanrop

Detta är en grundläggande idé om programmering som du kommer att stöta på under hela din utbildning. Skriv din egen funktion en gång istället för att skriva samma stora kodbitar om och om igen.

3. Använda funktionsprototyper i C

Prototyper är ett av de viktigaste sätten att nybörjare C skiljer sig från andra språk. Kort sagt, en prototyp är en liknande förhandsvisning av en funktion som definieras senare. Om du skriver funktionen print_for_me() efter huvudfunktionen kan du få en varning när du kompilerar:

Sammansatt bild som visar kod utan prototyp och varningen som c-kompilatorn ger

Varningsmeddelandet talar om att kompilatorn körde in i print_for_me-funktionen innan den deklarerades, så den kunde inte vara säker på att den skulle fungera korrekt när programmet körs.

Koden skulle fortfarande fungera, men varningen kan undvikas helt och hållet genom att använda en prototyp.

#omfatta void print_for_me(); int main (void) { print_for_me(); print_for_me(); returnera 0; } void print_for_me() { printf("Hej världen! \n"); }

Genom att titta på hela programmet kan du se prototypen för print_for_me() finns i början av programmet, men innehåller ingenting. Prototypfunktionen visar kompilatorn hur funktionen ska se ut, och om den kräver argument eller inte.

Det betyder att när du anropar den i huvudfunktionen så vet kompilatorn om den anropas korrekt och kan skicka en varning eller ett fel om det behövs. Detta kan vara något som verkar konstigt nu, men att veta om dem nu kommer att hjälpa i framtiden.

Hej världen utmatar två gånger genom flera funktionsanrop

Det här programmet fungerar fortfarande utan prototyp, men de är bra att använda. Resultatet ser fortfarande likadant ut än så länge, låt oss ändra det för att göra det mer personligt!

4. Skicka argument till C-funktioner

Ändra skriptet

För detta sista steg kommer du att fråga efter användarens namn och spela in deras input. Sedan kommer du att använda den i funktionen du skapade tidigare. I C är ord inte kända som strängar som i andra programmeringsspråk.

Istället är de en rad enstaka tecken. Symbolen för en array är [] och nyckelordet är röding. Börja med att uppdatera din prototypfunktion i början av ditt skript:

#omfatta  void print_for_me (char name[]); 

Nu kommer kompilatorn att veta att funktionen senare i skriptet tar en rad tecken som kallas namn. Än så länge existerar inte denna karaktär. Uppdatera din huvudfunktion för att skapa den och använd den för att lagra användarindata:

int main (void) { char name[20]; printf("Ange namn: "); scanf("%s", namn); print_for_me (namn); print_for_me("Alla!"); returnera 0; }

Den första raden i main skapar en teckenuppsättning med 20 möjliga mellanslag som kallas namn. Därefter uppmanas användaren att ange sitt namn med printf. Nästa rad använder en ny funktion som kallas scanf som tar nästa ord som användaren skriver.

De "%s" talar om för funktionen att den ska lagra data som en sträng och anropa den namn.

Ändra funktionen

Nu när du ringer print_for_me kan du inkludera namn i parentes. På nästa rad ser du att du även kan skicka andra tecken så länge de står mellan citattecken. Båda gångerna skickas det som står inom parentes till funktionen print_for_me.

Ändra det nu för att använda den nya informationen du ger den:

void print_for_me (char name[]) { printf("Hej,"); sätter (namn); }

Här kan du se att parentesen har uppdaterats precis som prototypen i början av skriptet. Inuti skriver du fortfarande hej med printf. En ny funktion här är sätter. Detta är en mer avancerad version av printf.

Allt som sätts inom parentes kommer att skrivas ut på konsolen och en ny rad ( \n du använde tidigare) läggs till automatiskt.

Spara och kompilera din kod på samma sätt som du gjorde tidigare - notera att du kan döpa programmet till något annat om du inte vill skriva över ditt tidigare program. Jag döpte min hej 2:

Det färdiga programmet i C

Som du borde se tar programmet ingången och använder den i funktionen innan den skickar den förinställda hälsningen "Alla!" återigen ger två separata utgångar till samma funktion.

C-programmeringens ABC

Det här programmet är enkelt, men några av begreppen i det är det inte. Mer avancerad C-kod måste skrivas mycket väl för att förhindra krascher. Det är därför många tror att det är en utmärkt språk att lära sig först eftersom det ingjuter goda vanor i nya programmerare.

Andra tycker att det är en bättre idé att lära sig C++, eftersom det bygger på C samtidigt som det behåller sin lägre systemkontroll. (Det finns också rost att tänka på - det är en spännande programmeringsspråk som syntaktiskt liknar C++.)

En sak är säker: språk som Python är mycket mer nybörjarvänliga. För ett gammalt språk används C fortfarande överallt, men Python kan vara framtidens språk 6 skäl till varför Python är framtidens programmeringsspråkVill du lära dig eller utöka dina programmeringskunskaper? Här är varför Python är det bästa programmeringsspråket att lära sig i år. Läs mer !

Ian Buckley är en frilansjournalist, musiker, artist och videoproducent bosatt i Berlin, Tyskland. När han inte skriver eller står på scen, pysslar han med DIY-elektronik eller kod i hopp om att bli en galen vetenskapsman.