The standard codes like G00, G01, G02 and G03 arte pretty standard, as well as quite a few others. But some can be quite different, like canned cycles and M codes. Just about all controllers are a little different, which is why you usually have a post processor for each different control. Some may not support certain codes, others need a different "header" in the file, there can be lots of little differences. But if you use the basic codes like I mentioned, as well as a few others, you can write g-code that will run on almost all machines.