1. Home
  2. Courses
  3. Cxx
  4. C-basics

Online Kurs omC Programmering

Grundkurs i modern C programmering

Fakta om kursen

Kursens namn
C Programmering
Längd
4 dagar
Nivå
Beginner
Målgrupp
Programmerare, inbyggda system
Förkunskaper
Praktiska kunskaper i något kompilerande språk
Verktyg
  • GNU C Compiler
  • Jetbrains CLion
  • Ubuntu Linux

Online

Du sitter bekvämt hemma och deltar i kursen över internet. Läraren undervisar på engelska om minst en av deltagarna önskar det, annars på svenska.
Pris: 16,000 kr (€1,519)

Klassrum

Våra klassrum finns centralt i Stockholm.
Pris: 24,000 kr

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

Företagsinternt

Du kan också beställa kursen som företagsintern. Då kommer vi till er och håller kursen i era lokaler. Alternativt så håller vi kursen online om ni så önskar. Skicka en kurs-förfrågan via knappen nedan.

Företagsintern Kurs

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 på kursen

  • 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