메모리 레이아웃
#define PRADDR(X) printf(" %s at %o and value = %o\n","X",&X,X) 
extern etext, edata, end;
static char s = 'S';
int a,b = 1;
main(argc,argv)
int argc;
char *argv[];
{
 void sub1();
 static int c, d =1;
 char m,n = 'n';
 printf("main at %o and sub1 at %o\n",main,sub1);
 printf("end of text segment at %o\n",&etext);
 PRADDR(s);      PRADDR(b);
 PRADDR(c);      PRADDR(d);
 printf("end of statics & initialized externals at %o\n", &edata);
 PRADDR(a);
 printf("end of uninitialized externals at %o\n", &end);
 PRADDR(m);      PRADDR(n);
 PRADDR(argc);      PRADDR(argv);
 for(b = 0; b<argc; b++)
         printf("argv[%d] at %o and value = %o or %s\n",
                 b, &argv[b], argv[b], argv[b]);
       sub1(c);
}
void sub1(p)
int p;
{
 static int t;
 char v;
 PRADDR(t); PRADDR(p); PRADDR(v);
}
Comments
Post a Comment