This repository contains a collection of C programming projects and exercises completed as part of the ALX Software Engineering program. These projects cover fundamental concepts in low-level programming, including basic C syntax, data structures, algorithms, and system-level programming.
The repository is organized into directories, each representing a specific project or set of exercises:
- 0x00-hello_world: Introduction to C programming, compilation, and basic output.
- 0x01-variables_if_else_while: Variables, conditional statements, and loops.
- 0x02-functions_nested_loops: Functions and nested loops.
- 0x03-debugging: Debugging techniques in C.
- 0x04-more_functions_nested_loops: More advanced functions and loops.
- 0x05-pointers_arrays_strings: Pointers, arrays, and string manipulation.
- 0x06-pointers_arrays_strings: Continued work on pointers and strings.
- 0x07-pointers_arrays_strings: Advanced string operations.
- 0x08-recursion: Recursive functions.
- 0x09-static_libraries: Creating and using static libraries.
- 0x0A-argc_argv: Command-line arguments.
- 0x0B-malloc_free: Dynamic memory allocation.
- 0x0C-more_malloc_free: Advanced memory management.
- 0x0D-preprocessor: C preprocessor directives.
- 0x0E-structures_typedef: Structures and typedef.
- 0x0F-function_pointers: Function pointers.
- 0x10-variadic_functions: Variadic functions.
- 0x12-singly_linked_lists: Singly linked lists.
- 0x14-bit_manipulation: Bit manipulation.
Each project directory contains C source files, headers, and a README with specific instructions.
- Ubuntu 20.04 LTS or later
- GCC compiler (version 9.3.0 or later)
- Make (optional, for build scripts)
To compile a C file, use the following command with strict flags:
gcc -Wall -Werror -Wextra -pedantic -std=gnu89 <filename>.c -o <output>