GLBasic User Manual

Main sections

ADDRESSOF()

ptr% = ADDRESSOF(foo)



Returns the address pointer of a function. Useful for SORTARRAY.

LOCAL arr[]


    // default sort
    Fill(arr[])
    SORTARRAY arr[], 0
    FOR i=0 TO LEN(arr[])-1
        PRINT arr[i], 0, i*16
    NEXT
    
    // sort by function
    Fill(arr[])
    SORTARRAY arr[], ADDRESSOF(compare)
    FOR i=0 TO LEN(arr[])-1
        PRINT arr[i], 100, i*16
    NEXT
    
    // inverse sort by function
    Fill(arr[])
    SORTARRAY arr[], ADDRESSOF(inverse_compare)
    FOR i=0 TO LEN(arr[])-1
        PRINT arr[i], 200, i*16
    NEXT


    SHOWSCREEN
    MOUSEWAIT
    
FUNCTION Fill: arr[]
    REDIM arr[10]
    // Populate array with known values
    RESTORE mydata
    FOR myloop=0 TO 9
        READ arr[myloop]
    NEXT
ENDFUNCTION

FUNCTION compare: BYREF a, BYREF b
    IF a<b THEN RETURN -1
    IF a>b THEN RETURN 1
    RETURN 0
ENDFUNCTION


FUNCTION inverse_compare: BYREF a, BYREF b
    IF a<b THEN RETURN 1
    IF a>b THEN RETURN -1
    RETURN 0
ENDFUNCTION

STARTDATA mydata:
    DATA 40,80,20,10,90,50,100,60,30,70
ENDDATA


Output:
10        10        100
20        20        90
30        30        80
40        40        70
50        50        60
60        60        50
70        70        40
80        80        30
90        90        20
100        100        10

See also...