If the meaning of page for you is file then maybe I understood what your problem is.
You want to access to same structure from different modules. If so you need to define your structure in only one module, than use a reference to 'external' data in all other modules where you want access same structure. Don't use 'static' qualifier or your struct will not be accessible at all from other modules.
See this example:
1. Create an header file where you will define the protos of your structures:
typedef struct _nestedfirst {
unsigned num;
} stNESTEDFIRST;
typedef struct _first
{
struct _nestedfirst *nf;
unsigned count;
} stFIRST;
extern stFIRST MyStFirstStructure;
2. Include this header in all files where you need access to the structure, but in only one instanciate the structure:
#include <header.h>
stFIRST MyStFirstStructure;
int foo(void)
{
MyStFirstStructure.nf->num = 0;
....
}
#include <header.h>
int bar(void)
{
MyStFirstStructure.nf->num += 2;
....
}
Please take into account that while the storage attribute applies to the whole structure, meaning that all variables inside the structure get such attribute, in your case in your structure you have declared a
pointer to a struct, not a struct!
So the pointer still is permanent and holds indefinitely the value you have set into it, but the nested structure referred by the pointer have
its own storage class depending on what you put in its declaration.