Hi
There is no simple answer, you will need to compare the EMC gcode reference
www.linuxcnc.org/docs/devel/html/gcode/main.html
to the Fanuc reference (at for instance)
en.wikipedia.org/wiki/G-code
and see for yourself.
Both Fanuc and EMC2 have the starting point of RS274 but you will quickly see that beyond the basic G and M codes there soon becomes divergence, with some codes not implemented in EMC or used differently.
This is the case with just about all controllers I have seen, beyond a certain point RS274 is 'extended' and the system becomes rather a proprietary one, with supporters and detractors on all sides.
'Macros' will certainly be different, EMC2 offers named parameters and subroutines, which to my mind is the biggest single aid to usability, getting away from reams of arcane numbered parameters.
Just need to do a lot of reading, if you are familiar with g code through another controller, you have a head start and just have to absorb the differences.
regards