Reklame
At lære at programmere er en kumulativ oplevelse. Udover at lære syntaksen for dit valgte sprog, skal du også lære de generelle principper, som alle programmeringssprog bruger.
At forstå og lære C-programmering kan være skræmmende, men der er et par grundlæggende ideer, der er værd at sætte sig ind i, når du starter. Et simpelt projekt er en fantastisk måde at lære det grundlæggende i C.
Så hvor skal du starte? Ved at sige hej!
1. Hej Verden!
Den første del af næsten hvert kodningskursus er Hej Verden program. At gennemgå det i detaljer fremhæver nogle af de måder, hvorpå C adskiller sig fra andre sprog. Til at begynde med skal du åbne en teksteditor eller IDE Tekstredaktører vs. IDE'er: Hvilken er bedre for programmører?Det kan være svært at vælge mellem en avanceret IDE og en enklere teksteditor. Vi tilbyder lidt indsigt for at hjælpe dig med at træffe den beslutning. Læs mere efter eget valg, og indtast denne kode:
#omfatte /* dette er et Hello World-script i C */ int main (ugyldig) { printf("Hej, verden! \n"); returner 0; }
Dette korte stykke kode udskrives til konsollen, før programmet afsluttes. Gem det et sted, der er let at huske som hej.c. Nu skal du kompilere og bygge din fil.
Får det til at køre
Normalt behøver du ikke installere yderligere software på din computer for at køre C-scripts. Åbn et terminalvindue (eller kommandoprompt, hvis du kører Windows), og naviger til den mappe, du gemte dit script i.
Måden du kompilerer og kører din fil på varierer fra system til system:
- Windows-brugere: Gør din fil eksekverbar ved at skrive cl hej.c og tryk på enter. Dette vil oprette hello.exe i den samme mappe, som du kan køre ved at skrive Hej.
- Linux- og macOS-brugere: Type gcc -o hej hej.c og tryk enter for at gøre det eksekverbart, og kør det ved at skrive ./Hej.
Uanset hvilken metode du bruger, bør kørsel af dit script vise dig dette:

Hvis det ikke virkede på Windows, skal du sørge for at køre kommandoprompt i administratortilstand. Til macOS skal du muligvis installere Xcode fra App Store og følg disse trin fra StackOverflow.
Lad os nu se på programmet linje for linje for at se, hvordan det fungerer, og forbedre det!
Under the Hood: Forståelse af C-sproget
Forbehandlere
Det script, du lige har oprettet, starter med inkluderingen af et bibliotek.
#omfatte
Den første linje i scriptet kaldes a præprocessor. Dette udføres før resten af scriptet er kompileret. I dette tilfælde fortæller den scriptet om at bruge stdio.h bibliotek. Der findes et stort antal præprocessorer til forskellige opgaver.
Stdio.h sørger for at få input fra programmets bruger, og sende information tilbage til dem.
/* dette er et Hello World-script i C */
Denne næste linje er en kommentar. Skråstreg og stjerne fortæller compileren at ignorere alt mellem den og den afsluttende stjerne og skråstreg. Selvom dette kan virke meningsløst, er det en essentiel vane at sætte sig ind i at være i stand til at efterlade dig selv og andre klare noter om, hvad din kode gør.
Hovedfunktionen
int main (ugyldig)
Hvert C-program skal have en vigtigste fungere. Main er en funktion, som returnerer et heltal, angivet med int. Klammerne efter main er for dets argumenter, men i dette tilfælde tager det ingen, hvorfor du bruger ugyldig søgeord.
Du skriver koden, der skal udføres mellem to krøllede seler.
{ printf("Hej, verden! \n"); returner 0; }
Inde i funktionen kalder du printf() fungere. Ligesom hoved(), printf er en funktion. Forskellen er, printf er en funktion i stdio bibliotek du inkluderede i starten.
Printf udskriver alt i parentes, mellem anførselstegnene, til konsollen. Det \n er en escape-sekvens kaldet newline, der fortæller compileren at springe til næste linje i konsollen, før han fortsætter.
Bemærk, at disse linjer ender på semikolon, som compileren bruger til at opdele en opgave fra den næste. Vær meget opmærksom på disse semikoloner - at gå glip af dem er den vigtigste årsag til, at tingene ikke går rigtigt!
Til sidst vender funktionen tilbage med tallet 0 og afslutter programmet. Det hoved() funktion skal altid returnere et heltal, og retur = 0; signalerer til computeren, at processen var vellykket.
At forstå hvert trin i dette script er en god start på at lære både C-syntaks og hvordan sproget fungerer.
2. Oprettelse af dine egne C-funktioner
Du kan oprette dine egne brugerdefinerede funktioner i C. I stedet for at udskrive Hello World i hovedfunktionen, skal du oprette en ny funktion til at gøre det for dig.
void print_for_me() { printf("Hej, verden! \n"); }
Lad os bryde dette ned.
ugyldig er et nøgleord, hvilket betyder, at følgende funktion ikke vil returnere noget.
print_for_me() er navnet på funktionen, og de tomme parenteser viser, at det ikke kræver argumenter for at virke. Et argument er ethvert stykke information, der skal videregives til en funktion for at få det til at fungere - senere vil du tilføje et eget argument for at ændre outputtet! Bemærk: Dette er ikke det samme som main()-funktionen ovenfor, som brugte void. Den funktion kan ikke tage argumenter, mens denne kan (men i dette tilfælde behøver den ikke).
Kodeblokken burde være bekendt for dig - det er kun udskriften fra den originale hovedfunktion.
Nu kan du kalde denne funktion fra din hovedfunktion.
int main (ugyldig) { print_for_me(); print_for_me(); returner 0; }
Du kan her se en fordel ved at bruge din egen funktion. I stedet for at skrive printf(“Hej, verden! \n”) hver gang kan du kalde funktionen to gange.
Lige nu virker det måske ikke så vigtigt, men hvis din print_for_me-funktion indeholdt mange linjer kode, er det en stor tidsbesparelse at kunne kalde det så nemt!

Dette er en grundlæggende idé om programmering, du vil støde på gennem din uddannelse. Skriv din egen funktion én gang i stedet for at skrive de samme store bidder af kode igen og igen.
3. Brug af funktionsprototyper i C
Prototyper er en af de vigtigste måder, begynder C adskiller sig fra andre sprog. Kort sagt er en prototype et lignende eksempel på en funktion, der defineres senere. Hvis du skriver print_for_me()-funktionen efter hovedfunktionen, får du muligvis en advarsel, når du kompilerer:

Advarselsmeddelelsen fortæller dig, at compileren kørte ind i print_for_me-funktionen, før den blev erklæret, så den kunne ikke være sikker på, at den ville fungere korrekt, når programmet kører.
Koden ville stadig fungere, men advarslen kan helt undgås ved at bruge en prototype.
#omfatte void print_for_me(); int main (ugyldig) { print_for_me(); print_for_me(); returner 0; } ugyldig print_for_me() { printf("Hej, verden! \n"); }
Ved at se på det fulde program kan du se prototypen for print_for_me() findes i starten af programmet, men ikke indeholder noget. Prototypefunktionen viser compileren, hvordan funktionen skal se ud, og om den kræver argumenter eller ej.
Det betyder, at når du kalder det i hovedfunktionen, ved compileren, om det bliver kaldt korrekt, og kan afgive en advarsel eller fejl, hvis det er nødvendigt. Dette kan være noget, der virker mærkeligt nu, men at vide om dem nu vil hjælpe i fremtiden.

Dette program fungerer stadig uden en prototype, men de er god praksis at bruge. Outputtet ser stadig det samme ud for nu, lad os ændre det for at gøre det mere personligt!
4. Overførsel af argumenter til C-funktioner
Ændring af script
Til dette sidste trin vil du bede om brugerens navn og registrere deres input. Så skal du bruge det i den funktion, du oprettede før. I C er ord ikke kendt som strenge som i andre programmeringssprog.
I stedet er de en række enkelte karakterer. Symbolet for et array er [] og nøgleordet er char. Begynd med at opdatere din prototypefunktion i starten af dit script:
#omfatte void print_for_me (char navn[]);
Nu vil compileren vide, at funktionen senere i scriptet tager en række kaldede tegn navn. Indtil videre eksisterer denne karakter ikke. Opdater din hovedfunktion for at oprette den, og brug den til at gemme brugerinput:
int main (ugyldig) { char navn[20]; printf("Indtast navn: "); scanf("%s", navn); print_for_me (navn); print_for_me("Alle!"); returner 0; }
Den første linje i hovedet opretter et tegnarray med 20 mulige mellemrum kaldet navn. Derefter bliver brugeren bedt om at indtaste sit navn ved hjælp af printf. Den næste linje bruger en ny funktion kaldet scanf som tager det næste ord, brugeren skriver.
Det "%s" fortæller funktionen, at den skal gemme dataene som en streng og kalde den navn.
Ændring af funktionen
Når du nu ringer til print_for_me, kan du inkludere navn i parentes. På næste linje vil du se, at du også kan sende andre tegn, så længe de er mellem anførselstegn. Begge gange bliver det, der står i parenteserne, videregivet til print_for_me-funktionen.
Rediger det nu for at bruge de nye oplysninger, du giver det:
void print_for_me (char name[]) { printf("Hej,"); sætter (navn); }
Her kan du se, at parenteserne er blevet opdateret ligesom prototypen i starten af scriptet. Indeni udskriver du stadig hej ved hjælp af printf. En ny funktion her er sætter. Dette er en mere avanceret version af printf.
Alt, der er sat i parenteserne, vil blive udskrevet til konsollen, og en ny linje (den \n du brugte tidligere) tilføjes automatisk.
Gem og kompilér din kode på samme måde, som du gjorde tidligere - bemærk, at du kan navngive programmet noget andet, hvis du ikke ønsker at overskrive dit tidligere program. Jeg navngav min hej 2:

Som du skal se, tager programmet inputtet og bruger det i funktionen, før det sender den forudindstillede hilsen "Alle!" igen giver to separate udgange til den samme funktion.
C-programmerings ABC'er
Dette program er enkelt, men nogle af koncepterne i det er det ikke. Mere avanceret C-kode skal skrives meget godt for at forhindre nedbrud. Det er derfor, mange tror, det er en fremragende sprog at lære først da det indgyder gode vaner i nye programmører.
Andre mener, at det er en bedre idé at lære C++, da det bygger på C, mens det bevarer sin lavere systemkontrol. (Der er også rust at overveje - det er en spændende programmeringssprog der syntaktisk ligner C++.)
En ting er sikker: sprog som Python er meget mere begyndervenlige. For et gammelt sprog bruges C stadig overalt, men Python kan være fremtidens sprog 6 grunde til, at Python er fremtidens programmeringssprogVil du lære eller udvide dine programmeringsevner? Her er grunden til, at Python er det bedste programmeringssprog at lære i år. Læs mere !
Ian Buckley er freelancejournalist, musiker, performer og videoproducer bosat i Berlin, Tyskland. Når han ikke skriver eller er på scenen, roder han med DIY-elektronik eller kode i håbet om at blive en gal videnskabsmand.