Since globals have file scope, extern is used to tell a file to not create a new variable with the same name but use one that''s been declared in another file. From the looks of your code, it doesn''t look like you''ve actually declared myball anywhere. In GameMain() you should just declare your variable with...
ball myball;
Then if you want to use that variable in another file, you would use extern to tell it to use the myball varibable that was declared in GameMain().
Now about the G struct... If you understand how the extern keyword works now I would recommend looking over Teej''s explanation of the G struct in ''Selected C Topics'' if you haven''t already.
Hope this helps
![](smile.gif)