home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_13_07 / feather / variable.c < prev   
Encoding:
C/C++ Source or Header  |  1995-05-25  |  2.4 KB  |  59 lines

  1. static int var_a = 1;      /* Internal linkage, definition */
  2. static int var_a;          /* Remains internal linkage */
  3. extern int var_a;          /* Remains internal linkage */
  4. int var_a;                 /* Error - var_a has internal linkage */
  5. static int var_a = 1;      /* Error - more than one definition */
  6.  
  7. static int var_b;          /* Internal linkage, tentative definition */
  8. extern int var_b = 1;      /* Remains internal linkage, definition
  9.                               overrides tentative definition */
  10.  
  11. int var_c = 1;             /* External linkage, definition */
  12. extern int var_c;          /* Remains external linkage */
  13. int var_c;                 /* Remains external linkage */
  14. static int var_c;          /* Error - var_c has external linkage */
  15. static int var_c = 1;      /* Error - more than one definition */
  16.  
  17. extern int var_d = 1;      /* External linkage, definition */
  18.  
  19. static int var_e;          /* Internal linkage, tentative definition */
  20. int var_e = 1;             /* Error - var_d has internal linkage */
  21.  
  22. static int var_f;          /* Internal linkage, tentative definition */
  23. int var_g;                 /* External linkage, tentative definition */
  24. extern int var_h;          /* External linkage */
  25. extern int var_f;          /* Remains internal linkage */
  26. static int var_f;          /* Remains internal linkage, another tentative
  27.                               definition */
  28.  
  29. int main (void)
  30. {
  31.     static int var_c       /* No linkage, hides the previous var_c */
  32.     extern int var_i;      /* External linkage */
  33.     extern int var_j;      /* External linkage */
  34.     extern int var_k;      /* External linkage */
  35.  
  36.     auto int var_f, var_g; /* Auto declarations hide the previous ones */
  37.                            /* No linkage */
  38.  
  39.     {
  40.         extern int var_f;  /* Error - hidden var_f has internal linkage */
  41.                            /* Illustrates subtle point #2 */
  42.        extern int var_g;  /* Remains external linkage */
  43.  
  44.         /* var_g here refers to the external linkage variable once more */
  45.     }
  46.  
  47.     /* var_g here refers to the auto variable */
  48.     return 0;
  49. }
  50.  
  51. int var_i;                 /* Remains external linkage, tentative
  52.                               definition */
  53.                            /* Illustrates subtle point #1 */
  54. extern int var_j;          /* Remains external linkage */
  55. static int var_k;          /* Error - var_k has external linkage */
  56.  
  57. /* End of File */ 
  58.  
  59.