#define
declares a preprocessor macro. This means that before compilation GPIO_PORTF_DIR_R
will be replaced everywhere in the code with the contents of the macro. So your actually compiled code will be
(*((volatile unsigned long *)0x40025400)) = 0x0E;
Which pretty much means write 0x0E
to that address.
Preprocessor macros are often used if you wish to to reference some (complicated) numeric value by a name. This allows you to centrally change that value if you have to, but have a meaningful name in your code without having to have a variable for it.