C Interfaces and Implementations Techniques for Creating Reusable Software By David R. Hanson
Extractions of code in the book in a more readable format.
Hanson: Ch. 1 & 2; Intro and First Section (titled "Interface") of Ch. 3-4, 7-9, 11; Section 8.2
@@ Foundations @@
+ 1. Introduction
+ 2. Interfaces and Implementations
+ 4. Exceptions and Assertions
- 5. Memory Management
- 6. More Memory Management
@@ Data Structures @@
+ 7. Lists
+ 8. Tables
+ 9. Sets
- 10. Dynamic Arrays
+ 11. Sequences
- 12. Rings
- 13. Bit Vectors
@@ Strings @@
+ 3. Atoms
- 14. Formatting
- 15. Low-Level Strings
- 16. High-Level Strings
@@ Arithmetic @@
- 17. Extended-Precision Arithmetic
- 18. Arbitrary-Precision Arithmetic
- 19. Multiple-Precision Arithmetic
@@ Threads @@
- 20. Threads
! Interface Summary
# starts on page 470 in textbook
# or you can look at the slide set linked below
http://cii.s3.amazonaws.com/book/pdf/quickref.pdf
+ Chapter 1
double.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/double.c
+ Chapter 2
arith.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arith.h
arith.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arith.c
stack.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/stack.c
+ Chapter 3
atom.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/atom.h
atom.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/atom.c
+ Chapter 4
except.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/except.h
except.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/except.c
assert.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/assert.h
assert.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/assert.c
- Chapter 5
mem.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mem.h
mem.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mem.c
memchk.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/memchk.c
- Chapter 6
arena.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arena.h
arena.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arena.c
+ Chapter 7
list.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/list.h
list.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/list.c
+ Chapter 8
table.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/table.h
getword.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/getword.h
getword.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/getword.c
table.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/table.c
+ Chapter 9
set.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/set.h
set.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/set.c
- Chapter 10
array.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/array.h
arrayrep.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/arrayrep.h
array.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/array.c
+ Chapter 11
seq.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/seq.h
seq.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/seq.c
- Chapter 12
ring.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ring.h
ring.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ring.c
- Chapter 13
bit.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/bit.h
bit.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/bit.c
- Chapter 14
fmt.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/fmt.h
fmt.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/fmt.c
- Chapter 15
str.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/str.h
ids.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ids.c
str.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/str.c
- Chapter 16
text.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/test.h
text.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/text.c
- Chapter 17
xp.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/xp.h
xp.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/xp.c
- Chapter 18
ap.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ap.h
calc.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/calc.c
ap.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/ap.c
- Chapter 19
mp.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mp.h
mpcalc.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mpcalc.c
mp.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/mp.c
- Chapter 20
thread.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/thread.h
sem.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/sem.h
chan.h https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/chan.h
sort.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/sort.c
spin.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/spin.c
sieve.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/sieve.c
chan.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/chan.c
thread.c https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/thread.c
swtch.s https://github.com/rachelBonanno/HansonDataStructures/blob/main/code/swtch.s
! See David R Handsons GitHub for other code !