- How to compile using gcc
- What is the official Holberton C coding style and how to check your code with betty-style
- What are the logical operators (sometimes called boolean operators) and how to use them
- What the the relational operators and how to use them
- How to declare variables of types char, int, unsigned int
- How to print the values of variables of type char, int, unsigned int with printf
- What is the ASCII character set
- What are the purpose of the gcc flags -m32 and -m64
- What are nested loops and how to use them
- What is a function and how do you use functions
- What is the difference between a declaration and a definition of a function
- What is a prototype
- Scope of variables
- What are the gcc flags -Wall -Werror -pedantic -Wextra
- What are header files and how to to use them with #include
- What is debugging
- What are some methods of debugging manually
- How to read the error messages
- What are nested loops and how to use them
- What are pointers and how to use them
- What are arrays and how to use them
- What are the differences between pointers and arrays
- How to use strings and how to manipulate them
- Scope of variables
- More pointers, arrays and strings
- What is recursion
- How to implement recursion
- In what situations you should implement recursion
- In what situations you shouldn’t implement recursion
- How to use arguments passed to your program
- What are two prototypes of main that you know of, and in which case do you use one or the other
- How to use attribute((unused)) or (void) to compile functions with unused variables or parameters
- What is the difference between automatic and dynamic allocation
- What is malloc and free and how to use them
- Why and when use malloc
- How to use valgrind to check for memory leak
- What are macros and how to use them
- What are the most common predefined macros
- How to include guard your header files
- How to use the exit function
- What are the functions calloc and realloc from the standard library and how to use them