Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Hur Man Kör Programmet? | Introduktion till C
C-Grunder

bookHur Man Kör Programmet?

Note
Definition

En kompilator är ett specialiserat program som översätter människoläsbar C-källkod till maskinkod som processorn kan utföra. Denna översättningsprocess gör att dina skrivna instruktioner blir en körbar fil som datorn förstår och kan köra.

För att omvandla vår kod till specifika kommandon för processorn behövs en kompilator. Kompilatorn bearbetar koden sekventiellt, uppifrån och ned. Själva kompileringen sker i flera steg:

  • Preprocessoroperation: alla #include-direktiv behandlas, vilket integrerar externa filer, bibliotek och andra nödvändiga komponenter i ditt program;

  • Syntaxfelanalys: kompilatorn kontrollerar syntaxfel och stoppar kompileringen om några fel upptäcks, samt markerar dessa för korrigering;

  • Kompilering till körbar fil: programmet översätts till en körbar fil (t.ex. .exe på Windows), vilket gör att du kan köra det som vilket annat program som helst.

En körbar fil är helt enkelt en serie instruktioner (maskinkod) avsedd för processorn. Som jämförelse kan frasen "Hello, c<>definity" i maskinkod likna en sekvens.

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

Ett avsiktligt fel har lagts till i koden nedan för att visa hur C-kompilatorn upptäcker och rapporterar problem.

Main.c

Main.c

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

Kompilatorn förväntar sig ett semikolon (;) i slutet av den femte raden. Utan detta känner inte kompilatorn igen var satsen slutar och behandlar return 0; som en del av samma rad. Som ett resultat visas felet på nästa rad, även om det verkliga problemet är det saknade semikolonet efter printf.

Main.c

Main.c

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

C-kompilatorn är ganska förlåtande med extra semikolon. Även om de kan se ovanliga ut, behandlas flera ; som tomma satser och påverkar inte programmets beteende. Koden kommer fortfarande att kompileras och köras utan problem, men det är god praxis att undvika onödiga semikolon för att hålla koden ren och lättläst.

question mark

Vilka är stegen för kompilering?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookHur Man Kör Programmet?

Svep för att visa menyn

Note
Definition

En kompilator är ett specialiserat program som översätter människoläsbar C-källkod till maskinkod som processorn kan utföra. Denna översättningsprocess gör att dina skrivna instruktioner blir en körbar fil som datorn förstår och kan köra.

För att omvandla vår kod till specifika kommandon för processorn behövs en kompilator. Kompilatorn bearbetar koden sekventiellt, uppifrån och ned. Själva kompileringen sker i flera steg:

  • Preprocessoroperation: alla #include-direktiv behandlas, vilket integrerar externa filer, bibliotek och andra nödvändiga komponenter i ditt program;

  • Syntaxfelanalys: kompilatorn kontrollerar syntaxfel och stoppar kompileringen om några fel upptäcks, samt markerar dessa för korrigering;

  • Kompilering till körbar fil: programmet översätts till en körbar fil (t.ex. .exe på Windows), vilket gör att du kan köra det som vilket annat program som helst.

En körbar fil är helt enkelt en serie instruktioner (maskinkod) avsedd för processorn. Som jämförelse kan frasen "Hello, c<>definity" i maskinkod likna en sekvens.

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

Ett avsiktligt fel har lagts till i koden nedan för att visa hur C-kompilatorn upptäcker och rapporterar problem.

Main.c

Main.c

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

Kompilatorn förväntar sig ett semikolon (;) i slutet av den femte raden. Utan detta känner inte kompilatorn igen var satsen slutar och behandlar return 0; som en del av samma rad. Som ett resultat visas felet på nästa rad, även om det verkliga problemet är det saknade semikolonet efter printf.

Main.c

Main.c

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

C-kompilatorn är ganska förlåtande med extra semikolon. Även om de kan se ovanliga ut, behandlas flera ; som tomma satser och påverkar inte programmets beteende. Koden kommer fortfarande att kompileras och köras utan problem, men det är god praxis att undvika onödiga semikolon för att hålla koden ren och lättläst.

question mark

Vilka är stegen för kompilering?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 3
some-alt