Kurs i

Modern C Programming

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.

Detta får du lära dig på kursen
  • Grundläggande syntax i modern C
  • Förstå och kunna använda pekare
  • Skapa dynamiska 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
Innehå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

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)

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()

Debugging

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

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
  • Handling record-oriented files

Working with Date & Times

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

Bit-Level Data-Types and Operators

  • Bit-oriented operators
  • Shift operators
  • Bit-field structs
  • Using nested anonymous structs and unions to map complex data records
  • Inline ASM (assembler) code
SnabbFakta
Namn
Modern C Programming
Längd
4 dagar
Nivå
Beginner
Målgrupp
Tekniska programmerare
Förkunskaper
Praktiska kunskaper i något kompilerande språk
Teknisk miljö
  • C11 compliant C compiler, such as gcc or clang
  • A decent IDE such as Jetbrains CLion
  • Ubuntu Linux or Cygwin
Relaterade Kurser
KursLängdNivå
POSIX and C11 Threads Programming using C2 dagarAdvanced
Linux Systems Programming using C 3 dagarAdvanced
Modern C++ Basics5 dagarBeginner
Schemalagd Kurs

Pris

24000 kr + moms

Vi ger 20% rabatt för tillkommande deltagare från samma företag på samma kurstillfälle. Läs mer om vår samma-företags-rabatt.

Just nu har vi inga kursdatum planerade för denna kurs. Vi lägger ut kursdatum löpande, så titta förbi denna sida litet senare.

Du kan också välja att prenumerera på vårt nyhetsbrev för att bli notifierad om nya kursdatum.

Företagsintern Kurs

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

Prisexempel för NN deltagare

PPP kr + moms

Antal
Område

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