Programming Linux
Quick search
Navigation
Courses
Courses Overview
Slide Material
Python Programming
The C Programming Language
Introduction
Types, Operators, Expressions
Program Flow
Functions and Program Structure
Pointers and Arrays
Structures
Memory
Advanced Language Features
Program Sanity
Performance
Profiling
C++: TODO List
C++: Miscellaneous Live-Hacking
C++
The New C++ (11-…)
Design Patterns With C++
C++ Code
C++ Exercises
CMake
Linux
Is Software A Craft? Software Is A Craft! ⟶
Clean Code
Unit Testing With
googletest
Linux Kernel Driver Development
Generated Topic Graph
How To Book
Log Of Past Courses
About
Myself: Contact, Impressum, …
This Site
Blog
Posts
The C Programming Language
¶
Topics
Group Description
Topics
¶
Introduction
Types, Operators, Expressions
Program Flow
Functions and Program Structure
Pointers and Arrays
Structures
Memory
Advanced Language Features
Program Sanity
Performance
Profiling
Group Description
¶
cluster_c
The C Programming Language
cluster_c_advanced_language_features
Advanced Language Features
cluster_c_introduction
Introduction
cluster_c_types_operators_expressions
Types, Operators, Expressions
cluster_c_program_sanity
Program Sanity
cluster_c_program_flow
Program Flow
cluster_c_pointers_and_arrays
Pointers and Arrays
cluster_c_functions_and_program_structure
Functions and Program Structure
cluster_c_profiling
Profiling
cluster_c_structures
Structures
cluster_c_performance
Performance
cluster_c_memory
Memory
c_advanced_language_features_atomic
Compiler Intrinsics
c_advanced_language_features_volatile
Volatile
c_advanced_language_features_atomic->c_advanced_language_features_volatile
c_memory_exercise_linked_list
Singly Linked List
c_advanced_language_features_volatile->c_memory_exercise_linked_list
c_advanced_language_features_alignment
Alignment
c_advanced_language_features_alignment->c_advanced_language_features_atomic
c_introduction_introduction
Introduction
c_introduction_installation
Installation
c_introduction_introduction->c_introduction_installation
c_introduction_exercise_power_declaration
Exercise: Forward Declaration
c_introduction_functions
Functions
c_introduction_exercise_power_declaration->c_introduction_functions
c_introduction_character_arrays
Character Arrays
c_introduction_character_arrays->c_introduction_exercise_power_declaration
c_introduction_exercise_fahrenheit_for
Exercise: Fahrenheit Table Using for
c_introduction_for_loop
for Loops
c_introduction_exercise_fahrenheit_for->c_introduction_for_loop
c_introduction_exercise_fahrenheit_float
Exercise: A Better Fahrenheit Table
c_introduction_for_loop->c_introduction_exercise_fahrenheit_float
c_introduction_variables_and_arithmetic_expressions
Variables and Arithmetic
c_introduction_hello_world
Hello World
c_introduction_variables_and_arithmetic_expressions->c_introduction_hello_world
c_introduction_external_variables_and_scope
Lifetime of Variables
c_introduction_exercise_string_read_line
Exercise: Read Line Into String from stdin
c_introduction_external_variables_and_scope->c_introduction_exercise_string_read_line
c_introduction_hello_world->c_introduction_introduction
c_introduction_exercise_histogram
Exercise: Character Histogram
c_introduction_functions->c_introduction_exercise_histogram
c_introduction_character_io
Character I/O
c_introduction_exercise_fahrenheit_cpp
Exercise: Fahrenheit Table Using Macros
c_introduction_character_io->c_introduction_exercise_fahrenheit_cpp
c_introduction_cpp_symbolic_constants
Symbolic Constants
c_introduction_exercise_fahrenheit_cpp->c_introduction_cpp_symbolic_constants
c_introduction_arrays
Arrays
c_introduction_exercise_histogram->c_introduction_arrays
c_introduction_cpp_symbolic_constants->c_introduction_exercise_fahrenheit_for
c_introduction_exercise_string_read_line->c_introduction_character_arrays
c_introduction_exercise_wc
Exercise: wc For The Poor
c_introduction_arrays->c_introduction_exercise_wc
c_introduction_exercise_wc->c_introduction_character_io
c_introduction_exercise_fahrenheit_float->c_introduction_variables_and_arithmetic_expressions
c_types_operators_expressions_conditional_expressions
?: - Conditional Expression
c_types_operators_expressions_assignment_operators_and_expressions
Assignment with Calculation
c_types_operators_expressions_conditional_expressions->c_types_operators_expressions_assignment_operators_and_expressions
c_types_operators_expressions_bit_operators
Bit-Operators
c_types_operators_expressions_assignment_operators_and_expressions->c_types_operators_expressions_bit_operators
c_types_operators_expressions_constants
Constants
c_types_operators_expressions_datatypes_size
Data Types, Sizes
c_types_operators_expressions_constants->c_types_operators_expressions_datatypes_size
c_types_operators_expressions_introduction
Type System
c_types_operators_expressions_introduction->c_introduction_external_variables_and_scope
c_types_operators_expressions_exercise_string_reduce
Exercise: Copy and Reduce String
c_types_operators_expressions_increment_decrement_operators
Increment, Decrement
c_types_operators_expressions_exercise_string_reduce->c_types_operators_expressions_increment_decrement_operators
c_types_operators_expressions_variable_names
Variable Names
c_types_operators_expressions_datatypes_size->c_types_operators_expressions_variable_names
c_types_operators_expressions_variable_names->c_types_operators_expressions_introduction
c_types_operators_expressions_type_conversions
Type Conversions
c_types_operators_expressions_relational_logical_operators
Relational and Logical Operators
c_types_operators_expressions_type_conversions->c_types_operators_expressions_relational_logical_operators
c_types_operators_expressions_bit_operators->c_types_operators_expressions_exercise_string_reduce
c_types_operators_expressions_precedence_and_order_of_evaluation
Precedence, Associativity
c_types_operators_expressions_precedence_and_order_of_evaluation->c_types_operators_expressions_conditional_expressions
c_types_operators_expressions_arithmetic_operators
Arithmetic Operators
c_types_operators_expressions_relational_logical_operators->c_types_operators_expressions_arithmetic_operators
c_types_operators_expressions_declarations
Variable Definitions
c_types_operators_expressions_arithmetic_operators->c_types_operators_expressions_declarations
c_types_operators_expressions_increment_decrement_operators->c_types_operators_expressions_type_conversions
c_types_operators_expressions_declarations->c_types_operators_expressions_constants
c_program_sanity_valgrind
valgrind
c_program_sanity_explicit_type_safety
Explict Type Safety
c_program_sanity_valgrind->c_program_sanity_explicit_type_safety
c_program_sanity_integral_types
Know Your Integers
c_program_sanity_introduction
Sanity and Readabilty
c_program_sanity_integral_types->c_program_sanity_introduction
c_program_sanity_const
Correctness - const
c_program_sanity_static
Visibility - static
c_program_sanity_const->c_program_sanity_static
c_program_sanity_discrete_values
Discrete Values - enum
c_program_sanity_discrete_values->c_program_sanity_integral_types
c_program_sanity_struct_initialization
Struct Initialization
c_program_sanity_struct_initialization->c_program_sanity_const
c_program_sanity_introduction->c_advanced_language_features_alignment
c_program_sanity_static->c_program_sanity_discrete_values
c_program_sanity_explicit_type_safety->c_program_sanity_struct_initialization
c_program_flow_loops_while_and_for
Loops: while and for
c_program_flow_switch
switch
c_program_flow_loops_while_and_for->c_program_flow_switch
c_program_flow_else_if
else - if
c_program_flow_if_else
if - else
c_program_flow_else_if->c_program_flow_if_else
c_program_flow_statements_and_blocks
Statements and Blocks
c_program_flow_statements_and_blocks->c_types_operators_expressions_precedence_and_order_of_evaluation
c_program_flow_loops_do_while
Loops: do - while
c_program_flow_loops_do_while->c_program_flow_loops_while_and_for
c_program_flow_if_else->c_program_flow_statements_and_blocks
c_program_flow_goto_and_labels
goto and Labels
c_program_flow_break_and_continue
break and continue
c_program_flow_goto_and_labels->c_program_flow_break_and_continue
c_program_flow_break_and_continue->c_program_flow_loops_do_while
c_program_flow_switch->c_program_flow_else_if
c_pointers_and_arrays_pointers_and_addresses
Pointers and Addresses
c_functions_and_program_structure_c_preprocessor_advanced
C Preprocessor: More
c_pointers_and_arrays_pointers_and_addresses->c_functions_and_program_structure_c_preprocessor_advanced
c_pointers_and_arrays_command_line_arguments
Commandline Arguments
c_pointers_and_arrays_pointers_and_arrays
Pointers and Arrays
c_pointers_and_arrays_command_line_arguments->c_pointers_and_arrays_pointers_and_arrays
c_pointers_and_arrays_exercise_swap
Exercise: Function That Swaps Two Variables
c_pointers_and_arrays_pointers_and_arrays->c_pointers_and_arrays_exercise_swap
c_pointers_and_arrays_pointers_and_function_arguments
Pointers as Function Parameters
c_pointers_and_arrays_pointers_and_function_arguments->c_pointers_and_arrays_pointers_and_addresses
c_pointers_and_arrays_exercise_swap->c_pointers_and_arrays_pointers_and_function_arguments
c_functions_and_program_structure_c_preprocessor
C Preprocessor: Basics
c_functions_and_program_structure_static_variables
Static Variables
c_functions_and_program_structure_c_preprocessor->c_functions_and_program_structure_static_variables
c_functions_and_program_structure_c_preprocessor_advanced->c_functions_and_program_structure_c_preprocessor
c_functions_and_program_structure_external_variables
Extern/Global Variables
c_functions_and_program_structure_basics
Basics
c_functions_and_program_structure_external_variables->c_functions_and_program_structure_basics
c_functions_and_program_structure_basics->c_program_flow_goto_and_labels
c_functions_and_program_structure_header_files
Header Files
c_functions_and_program_structure_static_variables->c_functions_and_program_structure_header_files
c_functions_and_program_structure_header_files->c_functions_and_program_structure_external_variables
c_profiling_gprof
GNU Profiler - gprof
c_profiling_introduction
Introduction
c_profiling_gprof->c_profiling_introduction
c_profiling_callgrind
callgrind
c_profiling_callgrind->c_profiling_gprof
c_performance_memory
Optimizations: Memory Optimizations
c_profiling_introduction->c_performance_memory
c_profiling_oprofile
oprofile
c_profiling_oprofile->c_profiling_callgrind
c_structures_basics
struct: Basics
c_structures_basics->c_pointers_and_arrays_command_line_arguments
c_structures_typedef
typedef: Type Alias
c_structures_structures_and_functions
struct: Functions
c_structures_typedef->c_structures_structures_and_functions
c_structures_structures_and_functions->c_structures_basics
c_performance_introduction
Optimization
c_performance_introduction->c_program_sanity_valgrind
c_performance_computebound
Optimizations: Compute Bound Code
c_performance_computebound->c_performance_introduction
c_performance_memory->c_performance_computebound
c_memory_malloc
Dynamic Memory
c_memory_exercise_linked_list->c_memory_malloc
c_memory_malloc->c_structures_typedef