Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hvordan Kjøre Programmet? | Introduksjon til C
C-Grunnleggende

bookHvordan Kjøre Programmet?

Note
Definisjon

En kompilator er et spesialisert program som oversetter menneskelesbar C-kildekode til maskinkode, som prosessoren kan utføre. Denne oversettelsesprosessen gjør at instruksjonene du har skrevet blir til en kjørbar fil som datamaskinen forstår og kan kjøre.

For å omdanne koden vår til spesifikke kommandoer for prosessoren, trenger du en kompilator. Kompilatoren behandler koden sekvensielt, fra topp til bunn. Kompileringsprosessen går gjennom flere trinn:

  • Preprosessor-operasjon: alle #include-direktiver behandles, og eksterne filer, biblioteker og andre nødvendige komponenter integreres i programmet ditt;

  • Syntaksfeilanalyse: kompilatoren sjekker etter syntaksfeil og stopper kompileringen hvis det oppdages feil, og markerer dem for korrigering;

  • Kompilering til kjørbar fil: programmet oversettes til en kjørbar fil (f.eks. .exe på Windows), slik at du kan kjøre det som et hvilket som helst annet program.

En kjørbar fil er rett og slett en serie instruksjoner (maskinkode) beregnet for prosessoren. Til sammenligning kan frasen "Hello, c<>definity" i maskinkode ligne en sekvens.

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

En villet feil ble lagt til i koden under for å demonstrere hvordan C-kompilatoren oppdager og rapporterer problemer.

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { printf("some text") // Error line return 0; }

Kompilatoren forventer et semikolon (;) på slutten av den femte linjen. Uten dette forstår ikke kompilatoren hvor setningen slutter, og behandler return 0; som en del av samme linje. Som et resultat vises feilen på neste linje, selv om det egentlige problemet er manglende semikolon etter printf.

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { ;; ;;;;;; printf("C language\n");;; ;return 0; ;;; }

C-kompilatoren er ganske tilgivende med ekstra semikolon. Selv om de kan se merkelige ut, blir flere ; behandlet som tomme setninger og påvirker ikke programmets oppførsel. Koden vil fortsatt kompilere og kjøre uten problemer, men det er god praksis å unngå unødvendige semikolon for å holde koden ryddig og lesbar.

question mark

Hva er trinnene for kompilering?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

What are the main stages of the compilation process?

Can you explain what a preprocessor does in more detail?

Why does the compiler sometimes report errors on the wrong line?

Awesome!

Completion rate improved to 2.63

bookHvordan Kjøre Programmet?

Sveip for å vise menyen

Note
Definisjon

En kompilator er et spesialisert program som oversetter menneskelesbar C-kildekode til maskinkode, som prosessoren kan utføre. Denne oversettelsesprosessen gjør at instruksjonene du har skrevet blir til en kjørbar fil som datamaskinen forstår og kan kjøre.

For å omdanne koden vår til spesifikke kommandoer for prosessoren, trenger du en kompilator. Kompilatoren behandler koden sekvensielt, fra topp til bunn. Kompileringsprosessen går gjennom flere trinn:

  • Preprosessor-operasjon: alle #include-direktiver behandles, og eksterne filer, biblioteker og andre nødvendige komponenter integreres i programmet ditt;

  • Syntaksfeilanalyse: kompilatoren sjekker etter syntaksfeil og stopper kompileringen hvis det oppdages feil, og markerer dem for korrigering;

  • Kompilering til kjørbar fil: programmet oversettes til en kjørbar fil (f.eks. .exe på Windows), slik at du kan kjøre det som et hvilket som helst annet program.

En kjørbar fil er rett og slett en serie instruksjoner (maskinkode) beregnet for prosessoren. Til sammenligning kan frasen "Hello, c<>definity" i maskinkode ligne en sekvens.

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

En villet feil ble lagt til i koden under for å demonstrere hvordan C-kompilatoren oppdager og rapporterer problemer.

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { printf("some text") // Error line return 0; }

Kompilatoren forventer et semikolon (;) på slutten av den femte linjen. Uten dette forstår ikke kompilatoren hvor setningen slutter, og behandler return 0; som en del av samme linje. Som et resultat vises feilen på neste linje, selv om det egentlige problemet er manglende semikolon etter printf.

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { ;; ;;;;;; printf("C language\n");;; ;return 0; ;;; }

C-kompilatoren er ganske tilgivende med ekstra semikolon. Selv om de kan se merkelige ut, blir flere ; behandlet som tomme setninger og påvirker ikke programmets oppførsel. Koden vil fortsatt kompilere og kjøre uten problemer, men det er god praksis å unngå unødvendige semikolon for å holde koden ryddig og lesbar.

question mark

Hva er trinnene for kompilering?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 3
some-alt