TFT Shield from Hobbytronics wont compile. Please help!

First off. I think that this question was correctly put in the Displays Forum.

If you do ask the same question in two Forums please SAY SO. Ideally with clickable links.

I was fascinated by WHY the forward declarations were failing.

A typical sketch has:

#include headers

#defines

global variables

function definitions

The Arduino kludge phase identifies forward declarations and inserts them just in front of the first function definition.

So you can solve the OP's problem by simply placing a "function" immediately after the includes:

void dummy_function(void) { }

This ensures that you get

#include headers

forward function declarations

dummy_function definition

#defines

global variables

function definitions

As a general rule function declarations might contain as yet undefined typedefs
As we have seen, you can't reference function pointers until they have been declared.

Personally I dislike the kludging of forward references. It is NOT part of C++.
I do like the parsing of .INO files to determine INCLUDE paths and LIBRARY paths.

I presume that IDE v1.8.9 has altered the positioning of forward declarations.

David.