mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 06:44:07 -06:00
1.3 KiB
1.3 KiB
| title | aliases | tags | ||
|---|---|---|---|---|
| 12-pointers-to-routines |
|
compiler ⇒ converts high level language description of program into assembly description of the program assembler ⇒ converts assebly language description into machine code description loader ⇒ loads program into memory, loaded at $4000
data has an address in memory, so does the application. Therefore functions must also have an address in memory which we can access
pointers to routines
int (*method)(int param)
to assign a pointer to a routine
method = square;
to call the routine
result = method(6);
basic example
pointer as member of a struct;
pointers to routines can beused anyqhere variables can
modules
we can break programs into functional modules
- each modules excapsulates one behaviour
- give us a way of data hiding
add pointer to structs as parameters to methods in modules
- call this an abstract data type ADT
- we communicatre with an ADT via its public interface
- so that the implementation details are hidden



