Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hvordan Man Kører Programmet? | Introduktion til C
C-Grundlæggende

bookHvordan Man Kører Programmet?

Note
Definition

En compiler er et specialiseret program, der oversætter menneskeligt læsbar C-kildekode til maskinkode, som processoren kan udføre. Denne oversættelsesproces gør det muligt for dine skrevne instruktioner at blive til en eksekverbar fil, som computeren forstår og kører.

For at omdanne vores kode til specifikke kommandoer for processoren, kræves en compiler. Compileren behandler koden sekventielt, fra top til bund. Kompileringen gennemgår flere faser:

  • Præprocessor-operation: alle #include-direktiver behandles, hvilket integrerer eksterne filer, biblioteker og andre nødvendige komponenter i dit program;

  • Analyse af syntaksfejl: compileren kontrollerer for syntaksfejl og stopper kompileringen, hvis der findes fejl, og fremhæver dem til rettelse;

  • Kompilering til eksekverbar fil: programmet oversættes til en eksekverbar fil (f.eks. .exe på Windows), hvilket gør det muligt at køre det som enhver anden applikation.

En eksekverbar fil er blot en række instruktioner (maskinkode) beregnet til processoren. Til sammenligning kan sætningen "Hello, c<>definity" i maskinkode ligne en sekvens.

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

En tilsigtet fejl blev tilføjet til koden nedenfor for at demonstrere, hvordan C-kompilatoren registrerer 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 (;) i slutningen af den femte linje. Uden dette kan kompilatoren ikke genkende, hvor sætningen slutter, og behandler return 0; som en del af samme linje. Som følge heraf opstår fejlen på den næste linje, selvom det reelle problem er det manglende semikolon efter printf.

Main.c

Main.c

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

C-kompilatoren er ret tilgivende over for ekstra semikoloner. Selvom de kan se mærkelige ud, behandles flere ; som tomme udsagn og påvirker ikke programmets opførsel. Koden vil stadig blive kompileret og kørt uden problemer, men det er god praksis at undgå unødvendige semikoloner for at holde din kode ren og læsbar.

question mark

Hvad er trinene for kompilering?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 2.63

bookHvordan Man Kører Programmet?

Stryg for at vise menuen

Note
Definition

En compiler er et specialiseret program, der oversætter menneskeligt læsbar C-kildekode til maskinkode, som processoren kan udføre. Denne oversættelsesproces gør det muligt for dine skrevne instruktioner at blive til en eksekverbar fil, som computeren forstår og kører.

For at omdanne vores kode til specifikke kommandoer for processoren, kræves en compiler. Compileren behandler koden sekventielt, fra top til bund. Kompileringen gennemgår flere faser:

  • Præprocessor-operation: alle #include-direktiver behandles, hvilket integrerer eksterne filer, biblioteker og andre nødvendige komponenter i dit program;

  • Analyse af syntaksfejl: compileren kontrollerer for syntaksfejl og stopper kompileringen, hvis der findes fejl, og fremhæver dem til rettelse;

  • Kompilering til eksekverbar fil: programmet oversættes til en eksekverbar fil (f.eks. .exe på Windows), hvilket gør det muligt at køre det som enhver anden applikation.

En eksekverbar fil er blot en række instruktioner (maskinkode) beregnet til processoren. Til sammenligning kan sætningen "Hello, c<>definity" i maskinkode ligne en sekvens.

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

En tilsigtet fejl blev tilføjet til koden nedenfor for at demonstrere, hvordan C-kompilatoren registrerer 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 (;) i slutningen af den femte linje. Uden dette kan kompilatoren ikke genkende, hvor sætningen slutter, og behandler return 0; som en del af samme linje. Som følge heraf opstår fejlen på den næste linje, selvom det reelle problem er det manglende semikolon efter printf.

Main.c

Main.c

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

C-kompilatoren er ret tilgivende over for ekstra semikoloner. Selvom de kan se mærkelige ud, behandles flere ; som tomme udsagn og påvirker ikke programmets opførsel. Koden vil stadig blive kompileret og kørt uden problemer, men det er god praksis at undgå unødvendige semikoloner for at holde din kode ren og læsbar.

question mark

Hvad er trinene for kompilering?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 3
some-alt