quartz/content/notes/12-pointers-to-routines.md
2022-09-05 10:19:46 +12:00

1.3 KiB

title aliases tags
12-pointers-to-routines
cosc204
lecture

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 to routine example|400

pointer as member of a struct;

pointers to routines can beused anyqhere variables can

  • member of struct |200

  • parameter to other routine |200

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

queue ADT|400