Kurs i C Programmering

Grundkurs i modern C programmering

Trots att språket C skapades i början på 70-talet är det fortfarande det naturliga valet vid maskinnära programmering. Denna kurs lär dig allt du behöver veta för att komma igång och bli produktiv med programmering i C oavsett om målsystemet är en Arduino, Raspberry PI eller en vanlig PC.
Detta får du lära dig
  • Grundläggande syntax i modern C
  • Förstå och kunna använda pekare
  • Skapa länkade data-typer
  • Hantera text strängar på ett säkert sätt
  • Hantera text filer
  • Bygga C applicationer
  • Skapa och länka biblioteksfiler
  • Debugga C program
  • Leta minnesläckage
  • Hantera binära post-indelade filer
  • Hantera datum och klockslag och formattera dem
Kursinnehåll

Background and Overview

  • K&R C
  • ANSI C
  • C99
  • C11
  • Language properties
  • Overview of the syntax

Scalar Types

  • Integral types
  • Floating-point types
  • Boolean values
  • Characters
  • Type variations, such as short/long, signed/unsigned
  • Variables
  • The sizeof operator
  • Scopes

Operators

  • Arithemtic operators
  • Relational operators
  • Logical operators
  • Assignment expression operators
  • Increment & decrement operators
  • Type alias
  • Type casts
  • The address operator
  • Printing to the console
  • Reading from the console

Composite Types

  • Structs
  • Unions
  • Arrays
  • Text strings

Statements

  • If statements
  • While loops
  • For loops
  • Foreach loops
  • Switch statements

Functions

  • Function syntax
  • Specification vs. implementation
  • Function main()
  • Understanding exit codes
  • Command-line arguments
  • Global vs. local data
  • Usage of static variables and their meaning

The Pre-Processor

  • Including application files
  • Including system files
  • Constants
  • Pre-defined constants
  • Function macros
  • Conditional compilation
  • Include guards
  • Stringification
  • Name concatenation
  • Variadic macros
  • Assertions

Understanding Pointers

  • What is a pointer
  • Pointer declaration syntax
  • The dereferencing operator
  • Starred pointers
  • Pointer arithmetics
  • Array access
  • Why arrays and pointers are the same
  • Text strings are arrays of characters
  • Struct access
  • Understanding the address operator
  • Pointer to a function
  • Indirect function calls

Dynamic Memory Blocks

  • What is dynamic memory
  • Using malloc() and free()
  • Why calloc() is better than malloc()
  • Using realloc()
  • Understanding briefly the structure of the system heap
  • Memory block manipulating functions
  • Linked list data-types
  • Binary-tree data-types
  • Allocating data on the call-stack using alloca()

Machine-Level Support

  • Bit-oriented operators
  • Shift operators
  • Bit-field structs
  • Inline ASM (assembler) code

Standard Libray

  • Overview
  • Online documentation

Working with Text String

  • Understanding that string literals are read-only
  • Overview of string manipulating functions in the standard library
  • Character oriented functions
  • String oriented functions
  • Conversion functions
  • Allocating memory blocks for strings
  • Copying strings
  • Searching strings
  • Tokenization of strings

Working with Files

  • Opening files
  • File opening modes
  • Formatted writing
  • Formatted reading
  • Changing the read/write position in a file
  • Line-oriented reading
  • Byte-oriented read/write

Working with Date & Times

  • The UNIX Epoc
  • Timestamps
  • Using struct tm
  • Getting the currect time
  • Formatting date and time values

Building C Applications

  • Program organization
  • Understanding compilation units
  • Compilation steps
  • Useful GCC compiler options
  • Dynamic vs. static linkage
  • Creating static linked library file (*.a)
  • Creating dynamic linked library file (*.so)

Dealing with Errors

  • Compiling for a debugger
  • Debugging inside CLion
  • Bried about the command-line debugger GDB
  • Finding memory-leaks using Valgrind

Unit Testing

  • What is unit testing
  • Installing cUnit
  • Writing tests
  • Compiling and linking tests
  • Executing tests
SnabbFakta
NamnC Programmering
Längd4 Dagar
NivåBeginner
MålgruppTekniska programmerare
FörkunskaperPraktiska kunskaper i något kompilerande språk
Verktyg
  • GCC compiler
  • Jetbrains CLion IDE
  • Ubuntu Linux @ VirtualBox or WSL @ Windows-10
KursDatum
DatumPlats Pris
2020-02-10Stockholm 24 000 kr
2020-03-02Stockholm 24 000 kr
2020-03-23Stockholm 24 000 kr
2020-04-06Stockholm 24 000 kr
2020-05-04Stockholm 24 000 kr
2020-06-01Stockholm 24 000 kr

Samma-Företags Rabatt

Vi ger 20% rabatt för tillkommande deltagare från samma företag vid samma kurs-tillfälle. Läs mer här.

Undervisningsspråk

Vårt tryckta kursmaterial är alltid författat på engelska. Den muntliga presentationen i våra klassrum är som regel på svenska, såvida inte samtliga deltagare samtycker till att vi genomför kursen på engelska.

Företagsintern Kurs

Om du beställer en företagsintern kurs kommer vi till er och håller kursen i era lokaler. Priset bestäms av vår prismodell och baseras på antalet kursdagar, antalet deltagare, samt i förekommande fall resa och logi.

Läs mer om vår prismodell och beställningsvillkor här.

Relaterade Kurser
KursDagarNivå
POSIX Threads med C2AdvancedVisa
Linux Systemprogramming med C3AdvancedVisa
Modern C++5 BeginnerVisa