On Oct 24, 2007, at 4:28 PM, James Newton wrote: > Where and how do we define those variables? We have a rule that says .h files should never allocate actual space. (well, hardly ever.) So main.h should contain something like: extern volatile BYTE Stat; and then you can put the actual definition wherever it makes most sense. Some compiler/linkers will overlap global external symbols with the same name, but I wouldn't count on it. Alternately, and better, you could add a bit to your source complexity have have "globals.h" that provides the "extern ..." declarations, and "globals.c" that contains nothing other than the global variable decls. (the code I work with is about 60,000 files.) "static" makes the variable local to your particular C file, a sort of limited scoping. It's NOT what you want for shared globals. BillW -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist