Annonse

Å lære å programmere er en kumulativ opplevelse. Ved siden av å lære syntaksen til det valgte språket, må du også lære de generelle prinsippene som alle programmeringsspråk bruker.

Å forstå og lære C-programmering kan være skremmende, men det er noen få grunnleggende ideer det er verdt å sette seg inn i når du starter. Et enkelt prosjekt er en fin måte å lære det grunnleggende om C.

Så hvor bør du begynne? Ved å si hei!

1. Hei Verden!

Den første delen av nesten hvert kodekurs er Hei Verden program. Å gå gjennom det i detalj fremhever noen av måtene C skiller seg på fra andre språk. Til å begynne med, åpne opp en tekstredigerer eller IDE Tekstredigerere vs. IDEer: Hvilken er bedre for programmerere?Det kan være vanskelig å velge mellom en avansert IDE og en enklere tekstredigerer. Vi tilbyr litt innsikt for å hjelpe deg å ta den avgjørelsen. Les mer etter eget valg, og skriv inn denne koden:

#inkludere /* dette er et Hello World-skript i C */ int main (ugyldig) { printf("Hei, verden! \n"); returner 0; }
instagram viewer

Denne korte kodebiten skrives ut til konsollen før programmet avsluttes. Lagre den et sted som er lett å huske som Hei C. Nå må du kompilere og bygge filen din.

Får det til å kjøre

Vanligvis trenger du ikke å installere ekstra programvare på datamaskinen din for å kjøre C-skript. Åpne et terminalvindu (eller ledetekst hvis du kjører Windows) og naviger til katalogen du lagret skriptet i.

Måten du kompilerer og kjører filen på varierer fra system til system:

  • Windows-brukere: Gjør filen kjørbar ved å skrive cl hei.c og trykk enter. Dette vil opprette hello.exe i samme mappe, som du kan kjøre ved å skrive Hallo.
  • Linux- og macOS-brukere: Type gcc -o hei hallo.c og trykk enter for å gjøre den kjørbar, og kjør den ved å skrive ./Hallo.

Uansett hvilken metode du bruker, bør kjøring av skriptet vise deg dette:

Utdata som viser resultatene av en Hello World! skisse i C

Hvis det ikke fungerte på Windows, sørg for at du kjører ledetekst i administratormodus. For macOS må du kanskje installere Xcode fra App Store og følg disse trinnene fra StackOverflow.

La oss nå se på programmet linje for linje for å se hvordan det fungerer, og forbedre det!

Under the Hood: Forstå C-språket

Forbehandlere

Skriptet du nettopp opprettet starter med inkludering av et bibliotek.

#inkludere 

Den første linjen i manuset kalles a forprosessor. Dette utføres før resten av skriptet er kompilert. I dette tilfellet forteller den skriptet å bruke stdio.h bibliotek. Det er et stort antall forprosessorer tilgjengelig for forskjellige oppgaver.

Stdio.h tar seg av å få innspill fra programmets bruker, og sende informasjon tilbake til dem.

/* dette er et Hello World-skript i C */

Denne neste linjen er en kommentar. Skråstreken og stjernen forteller kompilatoren å ignorere alt mellom den og den avsluttende stjernen og skråstreken. Selv om dette kan virke meningsløst, er det en viktig vane å kunne legge igjen deg selv og andre klare notater om hva koden din gjør.

Hovedfunksjonen

int main (ugyldig)

Hvert C-program må ha en hoved- funksjon. Main er en funksjon som returnerer et heltall, angitt med int. Klammerne etter main er for argumentene, men i dette tilfellet tar det ingen, og det er derfor du bruker tomrom søkeord.

Du skriver koden som skal utføres mellom to bukseseler.

{ printf("Hei, verden! \n"); returner 0; }

Inne i funksjonen kaller du printf() funksjon. Akkurat som hoved(), printf er en funksjon. Forskjellen er at printf er en funksjon i stdio biblioteket du inkluderte ved starten.

Printf skriver ut hva som helst i parentes, mellom anførselstegn, til konsollen. De \n er en escape-sekvens kalt newline, og ber kompilatoren hoppe til neste linje i konsollen før han fortsetter.

Merk at disse linjene ender på semikolon, som kompilatoren bruker til å dele en oppgave fra den neste. Vær nøye med disse semikolonene – å gå glipp av dem er hovedårsaken til at ting ikke går som det skal!

Til slutt returnerer funksjonen med tallet 0, og avslutter programmet. De hoved() funksjon må alltid returnere et heltall, og retur = 0; signaliserer til datamaskinen at prosessen var vellykket.

Å forstå hvert trinn i dette skriptet er en god start på å lære både C-syntaks og hvordan språket fungerer.

2. Opprette dine egne C-funksjoner

Du kan lage dine egne tilpassede funksjoner i C. I stedet for å skrive ut Hello World i hovedfunksjonen, lag en ny funksjon for å gjøre det for deg.

void print_for_me() { printf("Hei, verden! \n"); }

La oss bryte ned dette.

tomrom er et nøkkelord som betyr at følgende funksjon ikke vil returnere noe.

print_for_me() er navnet på funksjonen, og de tomme parentesene viser at den ikke krever argumenter for å fungere. Et argument er hvilken som helst informasjon som skal sendes videre til en funksjon for å få den til å fungere - senere vil du legge til et eget argument for å endre utdataene! Merk: Dette er ikke det samme som main()-funksjonen over som brukte void. Den funksjonen kan ikke ta argumenter, mens denne kan (men i dette tilfellet trenger den ikke).

Kodeblokken bør være kjent for deg - det er bare utskriftserklæringen fra den opprinnelige hovedfunksjonen.

Nå kan du kalle denne funksjonen fra hovedfunksjonen din.

int main (ugyldig) { print_for_me(); print_for_me(); returner 0; }

Du kan her se en fordel ved å bruke din egen funksjon. I stedet for å skrive printf(“Hei, verden! \n”) hver gang kan du ringe opp funksjonen to ganger.

Akkurat nå virker dette kanskje ikke så viktig, men hvis print_for_me-funksjonen din inneholdt mange linjer med kode, er det en stor tidsbesparelse å kunne kalle den så enkelt!

Hallo verden sender ut to ganger gjennom flere funksjonskall

Dette er en grunnleggende idé om programmering du vil komme over gjennom hele utdanningen din. Skriv din egen funksjon én gang, i stedet for å skrive de samme store kodebitene om og om igjen.

3. Bruke funksjonsprototyper i C

Prototyper er en av de viktigste måtene nybegynner C skiller seg fra andre språk. Kort sagt, en prototype er en lignende forhåndsvisning av en funksjon definert senere. Hvis du skriver print_for_me()-funksjonen etter hovedfunksjonen, kan du få en advarsel når du kompilerer:

Sammensatt bilde som viser kode uten prototype og advarselen c-kompilatoren gir

Advarselsmeldingen forteller deg at kompilatoren kjørte inn i print_for_me-funksjonen før den ble erklært, så den kunne ikke være sikker på at den ville fungere riktig når programmet kjører.

Koden vil fortsatt fungere, men advarselen kan unngås helt ved å bruke en prototype.

#inkludere void print_for_me(); int main (ugyldig) { print_for_me(); print_for_me(); returner 0; } void print_for_me() { printf("Hei, verden! \n"); }

Ved å se på hele programmet kan du se prototypen for print_for_me() eksisterer i starten av programmet, men inneholder ingenting. Prototypefunksjonen viser kompilatoren hvordan funksjonen skal se ut, og om den krever argumenter eller ikke.

Dette betyr at når du kaller den i hovedfunksjonen, vet kompilatoren om den kalles riktig og kan gi en advarsel eller feilmelding hvis det er nødvendig. Dette kan være noe som virker rart nå, men å vite om dem nå vil hjelpe i fremtiden.

Hallo verden sender ut to ganger gjennom flere funksjonskall

Dette programmet fungerer fortsatt uten prototype, men det er god praksis å bruke. Utgangen ser fortsatt den samme ut foreløpig, la oss endre den for å gjøre den mer personlig!

4. Sende argumenter til C-funksjoner

Endre skriptet

For dette siste trinnet vil du be om brukerens navn og registrere innspillet. Deretter bruker du den i funksjonen du opprettet før. I C er ord ikke kjent som strenger som i andre programmeringsspråk.

I stedet er de en rekke enkeltkarakterer. Symbolet for en matrise er [] og nøkkelordet er røye. Begynn med å oppdatere prototypefunksjonen i starten av skriptet:

#inkludere  void print_for_me (char name[]); 

Nå vil kompilatoren vite at funksjonen senere i skriptet tar en rekke tegn kalt Navn. Så langt eksisterer ikke denne karakteren. Oppdater hovedfunksjonen din for å lage den, og bruk den til å lagre brukerinndata:

int main (ugyldig) { char name[20]; printf("Skriv inn navn: "); scanf("%s", navn); print_for_me (navn); print_for_me("Alle!"); returner 0; }

Den første linjen i hovedlinjen lager en tegnarray med 20 mulige mellomrom kalt navn. Deretter blir brukeren bedt om å skrive inn navnet sitt ved å bruke printf. Den neste linjen bruker en ny funksjon kalt scanf som tar det neste ordet brukeren skriver.

De «%s» forteller funksjonen at den skal lagre dataene som en streng, og kalle den Navn.

Endre funksjonen

Nå når du ringer print_for_me, kan du inkludere Navn i parentes. På neste linje vil du se at du også kan sende andre tegn så lenge de står mellom anførselstegn. Begge ganger sendes det som står i parentes til funksjonen print_for_me.

Endre det nå for å bruke den nye informasjonen du gir den:

void print_for_me (char name[]) { printf("Hei,"); setter (navn); }

Her kan du se at parentesene er oppdatert akkurat som prototypen i starten av scriptet. Innvendig skriver du fortsatt hallo ved å bruke printf. En ny funksjon her er setter. Dette er en mer avansert versjon av printf.

Alt som er satt i parentesene vil bli skrevet ut på konsollen, og en ny linje (den \n du brukte tidligere) legges til automatisk.

Lagre og kompiler koden på samme måte som du gjorde tidligere – merk at du kan gi programmet et annet navn hvis du ikke vil overskrive det tidligere programmet. Jeg kalte min hei 2:

Det ferdige programmet i C

Som du skal se, tar programmet innspillet og bruker det i funksjonen, før du sender den forhåndsinnstilte hilsenen til "Alle!" igjen gir to separate utganger til samme funksjon.

ABC-ene til C-programmering

Dette programmet er enkelt, men noen av konseptene i det er det ikke. Mer avansert C-kode må skrives veldig godt for å forhindre krasj. Dette er grunnen til at mange tror det er en utmerket språk å lære først ettersom det gir gode vaner til nye programmerere.

Andre mener å lære C++ er en bedre idé, siden den bygger på C samtidig som den beholder sin lavere systemkontroll. (Det er også rust å vurdere - det er en spennende programmeringsspråk som er syntaktisk lik C++.)

En ting er sikkert: språk som Python er mye mer nybegynnervennlig. For et gammelt språk brukes fortsatt C overalt, men Python kan være fremtidens språk 6 grunner til at Python er fremtidens programmeringsspråkVil du lære eller utvide dine programmeringsferdigheter? Her er grunnen til at Python er det beste programmeringsspråket å lære i år. Les mer !

Ian Buckley er en frilansjournalist, musiker, utøver og videoprodusent bosatt i Berlin, Tyskland. Når han ikke skriver eller står på scenen, tuller han med DIY-elektronikk eller kode i håp om å bli en gal vitenskapsmann.