This repository is an introduction to the C language. The projects contained here are primarily written in C, with a few Bash scripts.
Project | Description |
---|---|
0x00-hello_world | Intro to C, gcc , and the usage of printf , puts , putchar . |
0x01-variables_if_else_while | How to use for/while loops, if/else statements, arithmetic, logical, and relational operators. |
0x02-functions_nested_loops | Understanding and using nested loops, prototypes, and header files. |
0x03-debugging | Reading error messages and debugging. |
0x04-more_functions_nested_loops | More nested loops. |
0x05-pointers_arrays_strings | Introduction to pointers, arrays, and string manipulation. |
0x06-pointers_arrays_strings | More pointers, arrays, and string manipulation. |
0x07-pointers_arrays_strings | Even more pointers, arrays, and string manipulation. |
0x08-recursion | What is recursion. |
0x09-static_libraries | Creating a static library with the usage of ar , ranlib , and nm . |
0x0A-argc_argv | Usage of the int main(int argc, char **argv) prototype and using __attribute__((unused)) or (void) to compile functions |
0x0B-malloc_free | Differences between automatic and dynamic allocation. Usage of malloc and free . And using valgrind to check for memory leak. |
0x0C-more_malloc_free | Creating a calloc prototype and usage of the exit function. |
0x0D-preprocessor | Macros and how to use them. |
0x0E-structures_typedef | Structures and how to use them with typedef . |
0x0F-function_pointers | Function pointers and how to use them. |
0x10-variadic_functions | Variadic functions and the usage of va_start , va_arg , and va_end . |
0x12-singly_linked_lists | Singly linked lists and how to use them. |
0x13-more_singly_linked_lists | More singly linked lists. |
0x14-bit_manipulation | Bit manipulation and the usage of bitwise operators. |
0x15-file_io | File descriptors, and file input/output using system calls: open , close , read , and write . |
0x17-doubly_linked_lists | Doubly linked lists and how to use them. |
0x18-dynamic_libraries | Creating a dynamic library and the usage of nm , ldd , and ldconfig . |
0x1A-hash_tables | Hash function and how to create a hash table that deals with collisions. |