The C Programming Language

Group Description

cluster_c The C Programming Language cluster_c_introduction Introduction cluster_c_advanced_language_features Advanced Language Features cluster_c_functions_and_program_structure Functions and Program Structure cluster_c_program_sanity Program Sanity cluster_c_types_operators_expressions Types, Operators, Expressions cluster_c_program_flow Program Flow cluster_c_structures Structures cluster_c_pointers_and_arrays Pointers and Arrays cluster_c_profiling Profiling cluster_c_performance Performance cluster_c_memory Memory c_introduction_functions Functions c_introduction_exercise_histogram Character Histogram c_introduction_functions->c_introduction_exercise_histogram c_introduction_introduction Introduction c_introduction_exercise_power_declaration Forward Declaration c_introduction_exercise_power_declaration->c_introduction_functions c_introduction_hello_world Hello World c_introduction_hello_world->c_introduction_introduction c_introduction_character_arrays Character Arrays c_introduction_character_arrays->c_introduction_exercise_power_declaration c_introduction_variables_and_arithmetic_expressions Variables and Arithmetic c_introduction_variables_and_arithmetic_expressions->c_introduction_hello_world c_introduction_exercise_string_read_line Read Line Into String from stdin c_introduction_exercise_string_read_line->c_introduction_character_arrays c_introduction_exercise_fahrenheit_float A Better Fahrenheit Table c_introduction_exercise_fahrenheit_float->c_introduction_variables_and_arithmetic_expressions c_introduction_external_variables_and_scope Lifetime of Variables c_introduction_external_variables_and_scope->c_introduction_exercise_string_read_line c_introduction_for_loop for Loops c_introduction_for_loop->c_introduction_exercise_fahrenheit_float c_introduction_exercise_fahrenheit_for Fahrenheit Table Using for c_introduction_exercise_fahrenheit_for->c_introduction_for_loop c_introduction_cpp_symbolic_constants Symbolic Constants c_introduction_cpp_symbolic_constants->c_introduction_exercise_fahrenheit_for c_introduction_exercise_fahrenheit_cpp Fahrenheit Table Using Macros c_introduction_exercise_fahrenheit_cpp->c_introduction_cpp_symbolic_constants c_introduction_character_io Character I/O c_introduction_character_io->c_introduction_exercise_fahrenheit_cpp c_introduction_exercise_wc wc For The Poor c_introduction_exercise_wc->c_introduction_character_io c_introduction_arrays Arrays c_introduction_arrays->c_introduction_exercise_wc c_introduction_exercise_histogram->c_introduction_arrays c_advanced_language_features_volatile Volatile c_memory_exercise_linked_list Singly Linked List c_advanced_language_features_volatile->c_memory_exercise_linked_list c_advanced_language_features_atomic Compiler Intrinsics c_advanced_language_features_atomic->c_advanced_language_features_volatile c_advanced_language_features_alignment Alignment c_advanced_language_features_alignment->c_advanced_language_features_atomic 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_header_files Header Files c_functions_and_program_structure_header_files->c_functions_and_program_structure_external_variables c_functions_and_program_structure_static_variables Static Variables c_functions_and_program_structure_static_variables->c_functions_and_program_structure_header_files c_functions_and_program_structure_c_preprocessor C Preprocessor: Basics c_functions_and_program_structure_c_preprocessor->c_functions_and_program_structure_static_variables c_program_flow_goto_and_labels goto and Labels c_functions_and_program_structure_basics->c_program_flow_goto_and_labels c_functions_and_program_structure_c_preprocessor_advanced C Preprocessor: More c_functions_and_program_structure_c_preprocessor_advanced->c_functions_and_program_structure_c_preprocessor 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_static Visibility - static c_program_sanity_discrete_values Discrete Values - enum c_program_sanity_static->c_program_sanity_discrete_values c_program_sanity_introduction Sanity and Readabilty c_program_sanity_introduction->c_advanced_language_features_alignment c_program_sanity_const Correctness - const c_program_sanity_const->c_program_sanity_static c_program_sanity_integral_types Know Your Integers c_program_sanity_integral_types->c_program_sanity_introduction c_program_sanity_struct_initialization Struct Initialization c_program_sanity_explicit_type_safety->c_program_sanity_struct_initialization c_program_sanity_discrete_values->c_program_sanity_integral_types c_program_sanity_struct_initialization->c_program_sanity_const c_types_operators_expressions_exercise_string_reduce 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_introduction Type System c_types_operators_expressions_introduction->c_introduction_external_variables_and_scope c_types_operators_expressions_variable_names Variable Names c_types_operators_expressions_variable_names->c_types_operators_expressions_introduction c_types_operators_expressions_bit_operators Bit-Operators c_types_operators_expressions_bit_operators->c_types_operators_expressions_exercise_string_reduce 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_datatypes_size Data Types, Sizes c_types_operators_expressions_datatypes_size->c_types_operators_expressions_variable_names c_types_operators_expressions_constants Constants c_types_operators_expressions_constants->c_types_operators_expressions_datatypes_size c_types_operators_expressions_declarations Variable Definitions c_types_operators_expressions_declarations->c_types_operators_expressions_constants 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_arithmetic_operators->c_types_operators_expressions_declarations c_types_operators_expressions_relational_logical_operators Relational and Logical Operators c_types_operators_expressions_relational_logical_operators->c_types_operators_expressions_arithmetic_operators c_types_operators_expressions_type_conversions Type Conversions c_types_operators_expressions_type_conversions->c_types_operators_expressions_relational_logical_operators c_types_operators_expressions_assignment_operators_and_expressions->c_types_operators_expressions_bit_operators c_types_operators_expressions_increment_decrement_operators->c_types_operators_expressions_type_conversions 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_loops_do_while Loops: do - while c_program_flow_loops_do_while->c_program_flow_loops_while_and_for c_program_flow_if_else if - else c_program_flow_statements_and_blocks Statements and Blocks c_program_flow_if_else->c_program_flow_statements_and_blocks c_program_flow_break_and_continue break and continue c_program_flow_break_and_continue->c_program_flow_loops_do_while c_program_flow_goto_and_labels->c_program_flow_break_and_continue c_program_flow_else_if else - if c_program_flow_switch->c_program_flow_else_if c_program_flow_else_if->c_program_flow_if_else c_program_flow_statements_and_blocks->c_types_operators_expressions_precedence_and_order_of_evaluation c_structures_typedef typedef: Type Alias c_structures_structures_and_functions struct: Functions c_structures_typedef->c_structures_structures_and_functions c_structures_basics struct: Basics c_pointers_and_arrays_command_line_arguments Commandline c_structures_basics->c_pointers_and_arrays_command_line_arguments c_structures_structures_and_functions->c_structures_basics c_pointers_and_arrays_pointers_and_function_arguments Pointers as Function Parameters c_pointers_and_arrays_pointers_and_addresses Pointers and Addresses c_pointers_and_arrays_pointers_and_function_arguments->c_pointers_and_arrays_pointers_and_addresses c_pointers_and_arrays_exercise_swap Function That Swaps Two Variables c_pointers_and_arrays_exercise_swap->c_pointers_and_arrays_pointers_and_function_arguments c_pointers_and_arrays_pointers_and_arrays Pointers and Arrays c_pointers_and_arrays_pointers_and_arrays->c_pointers_and_arrays_exercise_swap c_pointers_and_arrays_command_line_arguments->c_pointers_and_arrays_pointers_and_arrays c_pointers_and_arrays_pointers_and_addresses->c_functions_and_program_structure_c_preprocessor_advanced c_profiling_callgrind callgrind c_profiling_gprof GNU Profiler - gprof c_profiling_callgrind->c_profiling_gprof c_profiling_oprofile oprofile c_profiling_oprofile->c_profiling_callgrind c_profiling_introduction Introduction c_performance_memory Memory Optimizations c_profiling_introduction->c_performance_memory c_profiling_gprof->c_profiling_introduction c_performance_introduction Optimization c_performance_introduction->c_program_sanity_valgrind c_performance_computebound Compute Bound Code c_performance_computebound->c_performance_introduction c_performance_memory->c_performance_computebound c_memory_malloc Dynamic Memory c_memory_malloc->c_structures_typedef c_memory_exercise_linked_list->c_memory_malloc