This repository contains C programming projects completed as part of the ALX Software Engineering Programme. These projects focus on mastering the fundamentals of low-level programming and computer science using the C language.
0x00-hello_world: Introduction to GCC, shell, and the basics of C programming0x01-variables_if_else_while: Control structures, conditions, and loops0x02-functions_nested_loops: Functions and nested looping structures0x03-debugging: Basic debugging and tracing logic errors0x04-more_functions_nested_loops: More practice with functions and loop logic0x05-pointers_arrays_strings: Intro to pointers, arrays, and strings0x06-pointers_arrays_strings: Pointer arithmetic and string manipulation0x07-pointers_arrays_strings: Advanced manipulation of arrays and strings0x08-recursion: Understanding and using recursion in C0x09-static_libraries: Creating and using static libraries0x0A-argc_argv: Working with command-line arguments0x0B-malloc_free: Dynamic memory allocation withmallocandfree0x0C-more_malloc_free: Further practice with dynamic memory and double pointers0x0D-preprocessor: Introduction to macros and preprocessor directives0x0E-structures_typedef: Using structs and typedefs in C0x0F-function_pointers: Function pointers and callbacks0x10-variadic_functions: Handling functions with variable arguments0x12-singly_linked_lists: Implementing and traversing singly linked lists0x13-more_singly_linked_lists: More operations on singly linked lists0x14-bit_manipulation: Bitwise operations and bit manipulation techniques0x15-file_io: File descriptors and low-level file input/output0x17-doubly_linked_lists: Building and managing doubly linked lists0x18-dynamic_libraries: Creating and loading shared libraries at runtime0x1A-hash_tables: Hash table implementation and hashing algorithms0x1C-makefiles: Writing and using Makefiles to automate builds0x1E-search_algorithms: Searching techniques and algorithm complexity
- Language: C (ISO C90 standard)
- Compiler: GCC (Ubuntu 20.04)
- Style Guide: Betty Coding Style
- Version Control: Git
Each .c file can be compiled using:
gcc -Wall -Werror -Wextra -pedantic filename.c -o output