boxes_img4

C For Kernel Programming

Course Contents

Functions

  • Overview
  • Return Values
  • Function Arguments
  • Scope and Lifetime
  • Call-by-Value
  • Definition and Declaration
  • In-line Functions
  • Static Functions

The Preprocessor

  • #include
  • #define
  • #undef
  • Conditional Compilation
  • #ifdef
  • #ifndef
  • #if
  • Stringification & Concatenation

Pointers

  • Pointers as Function Arguments
  • Pointers and Arrays
  • Pointer Arithmetic
  • Using sizeof
  • Passing Arrays to Functions
  • Pointers to Constant Data
  • Passing Pointers-to-Const
  • Converting Pointers-to-Const
  • Pointers to Pointers
  • Constant Pointers
  • Increment Operators and Pointers
  • Pointers to Functions

Bit Manipulation

  • Bit Twiddling Operators
  • Bit Shifting
  • Portable Bit Manipulation
  • Print Bit Representations

Dynamic Memory

  • Using Malloc
  • Using Calloc
  • Using Realloc
  • Using Free

Arrays

  • Overview
  • Array Basics
  • Array Example
  • Looping Over an Array
  • Array Sizes
  • Copying Arrays
  • Initializing Arrays
  • Strings
  • Array Caveats

Other Data Types: Structures,Unions,
and Enums

  • Defining Structures
  • Using Structures
  • Initializing Structure Variables
  • Initializing Structure with GNU
  • execution
  • Problems with Initializing Structures
  • Initializing Arrays of Structures
  • Pointers to Structures
  • Passing Structures to Functions
  • Passing Structure Pointers
  • Structures as Data Types
 

Description

This course is specifically designed for C programmers who are looking to use C for advanced usages like kernel programming. Each topic mentioned below will be dealt at a deeper level, enhancing your usage level understanding of C for kernel programming needs.

Course feedbacks

 

Related Articles