C
Learn C from first principles — memory, pointers, and systems programming.
1,219 lessons·First 10 free
- 1What is a low-level language?Free
- 2The origins at Bell LabsFree
- 3C's role in Operating SystemsFree
- 4Standards: ANSI C vs C99 vs C11Free
- 5Why C remains relevant todayFree
- 6C as a compiled languageFree
- 7The trade-off: Power vs SafetyFree
- 8Hardware abstraction in CFree
- 9Role of the CompilerFree
- 10Installing GCC on Linux/macOSFree
- 11Setting up MinGW on WindowsPro
- 12Introduction to the CLIPro
- 13Using a Text Editor vs IDEPro
- 14Verifying your installationPro
- 15The concept of a Source FilePro
- 16Naming conventions for .c filesPro
- 17The 'Hello World' codePro
- 18The `#include` directivePro
- 19What is a Header File?Pro
- 20The `main()` function entry pointPro
- 21Curly braces `{}` and blocksPro
- 22Semicolons as statement terminatorsPro
- 23Case sensitivity in CPro
- 24The `return 0;` statementPro
- 25Phase 1: The PreprocessorPro
- 26Phase 2: Compilation to AssemblyPro
- 27Phase 3: Assembly to Object CodePro
- 28Phase 4: The LinkerPro
- 29Understanding `.o` and `.obj` filesPro
- 30Creating an executable binaryPro
- 31How the OS runs a programPro
- 32Executing from the command linePro
- 33Single-line comments `//` Pro
- 34Multi-line comments `/* */` Pro
- 35Documenting intent vs mechanicsPro
- 36Whitespace and indentationPro
- 37Readability best practicesPro
- 38Commenting out code for testingPro
- 39Nested comment pitfallsPro
- 40C coding style guidesPro
- 41The `stdio.h` libraryPro
- 42Basic `printf` syntaxPro
- 43Printing literal stringsPro
- 44Newline character `\n` Pro
- 45Horizontal tab `\t` Pro
- 46Escaping double quotesPro
- 47Escaping the backslashPro
- 48The percent sign `%%` literalPro
- 49Introduction to Format SpecifiersPro
- 50Printing integers with `%d` Pro
- 51Printing characters with `%c` Pro
- 52Printing decimals with `%f` Pro
- 53The `%s` specifier for stringsPro
- 54Multiple specifiers in one linePro
- 55Argument-specifier matchingPro
- 56Basic field width formattingPro
- 57Basic `gcc` command flagsPro
- 58Naming the output with `-o` Pro
- 59Compiling multiple source filesPro
- 60Understanding the `a.out` defaultPro
- 61Introduction to `make` and MakefilesPro
- 62Automating the build processPro
- 63Header search pathsPro
- 64Library linking basicsPro
- 65Syntax errors vs Logic errorsPro
- 66Reading compiler error messagesPro
- 67Line number trackingPro
- 68Warnings vs Fatal errorsPro
- 69Enabling all warnings with `-Wall` Pro
- 70The 'undefined reference' linker errorPro
- 71Common beginner typosPro
- 72Debugging by printingPro