C programming in plain view

From Wikiversity
Jump to navigation Jump to search

Part I : C Language[edit | edit source]

Introduction[edit | edit source]

Handling Repetition[edit | edit source]

Handling a Big Work[edit | edit source]

Handling Series of Data[edit | edit source]



  • 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
Example 1 (A.pdf, C.pdf)
Example 2 (A.pdf, C.pdf)
Example 3 (A.pdf, C.pdf)
Bubble Sort (A.pdf)

Handling Various Kinds of Data[edit | edit source]

Handling Low Level Operations[edit | edit source]

Declarations[edit | edit source]

  • Type Specifiers and Qualifiers (pdf)
  • Storage Class Specifiers (pdf)
  • Scope


Class Notes[edit | edit source]



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]

  • Overview (pdf)
  • Preprocessor (pdf)
  • Compiler (pdf)
  • Assembler (pdf)

Linking and Loading[edit | edit source]

  • static linking (pdf)
  • dynamic linking (pdf)

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]


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]

Examples II[edit | edit source]

  • analysis of dynamic linking (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

  • Intro.1.A (pdf)
  • Control.1.A (pdf)
  • Iteration.1.A (pdf)
  • Function.1.A (pdf)
  • Variable.1.A (pdf)
  • Operators.1.A (pdf)
  • Pointer.1.A (pdf)
  • Pointer.2.A (pdf)
  • Array.1.A (pdf)
  • Type.1.A (pdf)
  • Structure.1.A (pdf)


go to [ Electrical_&_Computer_Engineering_Studies ]