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
Hämtar kursschema...
Pris

24 000 kr + moms 24000

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.

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