C programming in plain view
Jump to navigation
Jump to search
Part I : C Language[edit | edit source]
Introduction[edit | edit source]
- Overview (A.pdf, B.pdf, C.pdf)
- Number System (A.pdf, B.pdf, C.pdf)
- Memory System (A.pdf, B.pdf, C.pdf)
Handling Repetition[edit | edit source]
Handling a Big Work[edit | edit source]
- Function Overview (A.pdf, B.pdf)
- Functions & Variables (A.pdf, B.pdf)
- Functions & Pointers (A.pdf, B.pdf)
- Functions & Recursions (A.pdf, B.pdf)
Handling Series of Data[edit | edit source]
- Background (A.pdf)
- Arrays (A.pdf, B.pdf)
- Pointers (A.pdf, B.pdf)
- Array Pointers (A.pdf, B.pdf)
- Array Access Methods (A.pdf, B.pdf)
- Structures (A.pdf, B.pdf)
- Applications of Arrays (A.pdf)
- Applications of Pointers (A.pdf)
- Applications of Array Pointers (A.pdf)
- Applications of Array Access Methods (A.pdf)
- Applications of Structures (A.pdf)
- Spreadsheet Example Programs
Handling Various Kinds of Data[edit | edit source]
Handling Low Level Operations[edit | edit source]
- Bitwise Operations (A.pdf, B.pdf)
- Bit Field (A.pdf, B.pdf)
- Union (A.pdf, B.pdf)
- Accessing IO Registers (A.pdf, B.pdf)
Declarations[edit | edit source]
Class Notes[edit | edit source]
- TOC (TOC.pdf)
- Day01 (A.pdf, B.pdf, C.pdf) ...... Introduction (1) Standard Library
- Day02 (A.pdf, B.pdf, C.pdf) ...... Introduction (2) Basic Elements
- Day03 (A.pdf, B.pdf, C.pdf) ...... Introduction (3) Numbers
- Day04 (A.pdf, B.pdf, C.pdf) ...... Structured Programming (1) Flowcharts
- Day05 (A.pdf, B.pdf, C.pdf) ...... Structured Programming (2) Conditions and Loops
- Day06 (A.pdf, B.pdf, C.pdf) ...... Program Control
- Day07 (A.pdf, B.pdf, C.pdf) ...... Function (1) Definitions
- Day08 (A.pdf, B.pdf, C.pdf) ...... Function (2) Storage Class and Scope
- Day09 (A.pdf, B.pdf, C.pdf) ...... Function (3) Recursion
- Day10 (A.pdf, B.pdf, C.pdf) ...... Arrays (1) Definitions
- Day11 (A.pdf, B.pdf, C.pdf) ...... Arrays (2) Applications
- Day12 (A.pdf, B.pdf, C.pdf) ...... Pointers (1) Definitions
- Day13 (A.pdf, B.pdf, C.pdf) ...... Pointers (2) Applications
- Day14 (A.pdf, B.pdf, C.pdf) ...... C String (1)
- Day15 (A.pdf, B.pdf, C.pdf) ...... C String (2)
- Day16 (A.pdf, B.pdf, C.pdf) ...... C Formatted IO
- Day17 (A.pdf, B.pdf, C.pdf) ...... Structure (1) Definitions
- Day18 (A.pdf, B.pdf, C.pdf) ...... Structure (2) Applications
- Day19 (A.pdf, B.pdf, C.pdf) ...... Union, Bitwise Operators, Enum
- Day20 (A.pdf, B.pdf, C.pdf) ...... Linked List
- Day21 (A.pdf, B.pdf, C.pdf) ...... File Processing
- Day22 (A.pdf, B.pdf, C.pdf) ...... Preprocessing
See also https://cprogramex.wordpress.com/
Part II : C Standard Libraries [edit | edit source]
The C libraries[edit | edit source]
- Character Processing (pdf)
- String Processing (pdf, B.pdf)
- Memory Allocations (pdf)
- I/O Functions (pdf, B.pdf)
- Memory Functions (in String Processing)
- Mathematical Functions (pdf)
Part III : Compiling & Linking [edit | edit source]
Compiling[edit | edit source]
Linking and Loading[edit | edit source]
ELF[edit | edit source]
- Overview - ELF (pdf)
Binutil[edit | edit source]
- Overview - Binutil (pdf)
Make[edit | edit source]
Part IV : Workings of the GNU Compiler and Linker [edit | edit source]
Workings of the GNU Compiler[edit | edit source]
- Overview (pdf)
- Access (pdf)
- Operators (pdf)
- Control (pdf)
- Procedure (pdf)
- Arrays (pdf)
- Structures (pdf)
- Alignment (pdf)
- Pointers (pdf)
Workings of the GNU Linker[edit | edit source]
Overview[edit | edit source]
- Static Linking Overview (pdf)
- Dynamic Linking Overview (pdf)
Linking Process[edit | edit source]
Example I[edit | edit source]
- Vector addition (A.pdf, B.pdf)
- Swapping array elements (A.pdf, B.pdf)
- Nested functions (A.pdf, B.pdf)
Examples II[edit | edit source]
- analysis of dynamic linking (A.pdf)
- analysis of PIC (A.pdf)
Part V : Workings of the ELF Files [edit | edit source]
ELF Study[edit | edit source]
ELF Relocations[edit | edit source]
Relocation Examples[edit | edit source]
- Relocs example introduction (E1.pdf)
- Relocs in an object for a library (E2.pdf)
- Relocs in an object for an executable (E3.pdf)
- Relocs in a library (E4.pdf)
- Relocs in an executable (E5.pdf)
- Result Summary (E6.pdf)
- Symbol Table Listing (E7.pdf)
- Relocs Listing (E8.pdf)
- Assembly Listing (E9.pdf)
- Reloc Experiments (F.pdf)
Executable and Linkable Format[edit | edit source]
Object Files[edit | edit source]
- Introduction
- ELF Header
- Sections
- String Table
- Symbol Table
- Relocation (A.pdf)
Program Loading and Dynamic Linking[edit | edit source]
- Introduction
- Program Header
- Program Loading
- Dynamic Linking (pdf)
C Library[edit | edit source]
- C Library
Part VI : Assembly Programming [edit | edit source]
GAS (GNU Assembler)[edit | edit source]
- Overview (pdf)
- Command-line (pdf)
- Syntax (pdf)
- Sections and Relocations (pdf)
- Symbols (pdf)
- Expression (pdf)
- Directives (1) (pdf)
- Directives (2) (pdf)
- Directives (3) (pdf)
GCC Inline Assembly[edit | edit source]
NASM[edit | edit source]
ld (Gnu Linker)[edit | edit source]
Linker Script[edit | edit source]
- Basic Script Concepts
- Script Format
- Simple Example
- Simple Commands
- Assignments
- SECTIONS
- MEMORY
- PHDRS
- VERSION
- Expression
- Implicit Linker Scripts
Part VII : Debugging & Profiling [edit | edit source]
Background[edit | edit source]
Gnu Debugger[edit | edit source]
- Using GDB (pdf)
Profiling[edit | edit source]
Old Materials [edit | edit source]
until 201201
- Intro.Overview.1.A (pdf)
- Intro.Memory.1.A (pdf)
- Intro.Number.1.A (pdf)
- Repeat.Control.1.A (pdf)
- Repeat.Loop.1.A (pdf)
- Work.Function.1.A (pdf)
- Work.Scope.1.A (pdf)
- Series.Array.1.A (pdf)
- Series.Pointer.1.A (pdf)
- Series.Structure.1.A (pdf)
- Data.Type.1.A (pdf)
- Data.TypeCast.1.A (pdf)
- Data.Operators.1.A (pdf)
until 201107