Systemprogrammering i praksis
Computerspace · FGU · Programmering i C++
🖥️ C++ i den virkelige verden
C++ er fundamentet for verdens mest krævende software. Når ydeevne og kontrol over hardware er kritisk, er C++ standardvalget.
Hvad bruges C++ til?
- Operativsystemer: Dele af Windows, Linux og macOS kernen
- Spilengines: Unreal Engine (AAA-spil), id Tech-engine
- Browsere: Chrome (Chromium), Firefox, Safari
- Databaser: MySQL, MongoDB, Redis
- Embedded systemer: Biler, fly, medicinsk udstyr
- Finansielle systemer: High-frequency trading (HFT) – microsekund latency
- Kompilatorer: GCC, Clang, LLVM er skrevet i C++
Performance og zero-cost abstractions:
```cpp
// C++ garanterer at abstraktioner ikke koster ydeevne
// Templates udfoldes på compile-tid
// Ingen garbage collector – forudsigelig ydeevne
```
Kompilering og linking:
```bash
Kompilér en enkelt fil
g++ -std=c++17 -O2 -o program main.cpp
Kompilér med flere filer
g++ -std=c++17 -O2 -o program main.cpp utils.cpp
Flags:
-std=c++17 : Brug C++17 standard
-O2 : Optimering niveau 2
-Wall : Vis alle advarsler
-g : Debug-information
```
CMake – moderne build system:
```cmake
cmake_minimum_required(VERSION 3.16)
project(MitProjekt)
set(CMAKE_CXX_STANDARD 17)
add_executable(program main.cpp utils.cpp)
```
Karrieremuligheder:
- Systemudvikler – OS, drivere, embedded firmware
- Game Developer – Unreal Engine, spilengine-udvikling
- Embedded Engineer – IoT, automotive, aerospace
- HFT-udvikler – finansielle systemer med ekstremt lav latency
- Compiler Engineer – arbejder på LLVM, GCC
---
🎓 Læringsmål for Systemprogrammering i praksis
Læringsmål
- Kende de primære anvendelsesområder for C++ i industrien
- Forstå C++'s styrker: ydeevne, kontrol og zero-cost abstractions
- Kompilere C++-programmer med g++ og relevante compiler-flags
- Have kendskab til CMake som build-system
Sådan kan du arbejde med emnet
- Hvad bruges C++ primært til i den virkelige verden?
- Hvad er zero-cost abstractions?
- Hvad er CMake og hvornår bruger man det?
- Hvad er karrieremulighederne som C++ udvikler?
⚠️ Typiske fejl at undgå
- Overoptimering for tidligt – skriv korrekt kode først, optimer bagefter
- Ignorerer undefined behavior – C++ har mange UB-fælder der giver mystiske fejl
- Skriver alt i én fil – opdel kode i header-filer (.h) og implementeringsfiler (.cpp)
---
💡 Tips til at komme i gang
- Bidrag til open source – mange C++-projekter på GitHub byder begyndere velkommen
- Lær CMake tidligt – det er industristandarden til C++ build-systemer
- Udforsk Unreal Engine – gratis til læring og bruger C++ som primært sprog
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis