Static vs. Automatic
/** version 1 - automatic variables **/
#include <stdio.h>
void counter(void);
int main(void)
{
int i;
for (i = 0; i < 10; i++)
counter();
return (0);
}
void counter(void)
{
int count = 0;
printf("\nCount = %d", count);
count++;
}
/********************************************/
OUTPUT from static.c version 1
Count = 0
Count = 0
Count = 0
Count = 0
Count = 0
Count = 0
Count = 0
Count = 0
Count = 0
Count = 0
/** version 2 - static variables **/
#include <stdio.h>
void counter(void);
int main(void)
{
int i;
for (i = 0; i < 10; i++)
counter();
return (0);
}
void counter(void)
{
static int count = 0;
printf("\nCount = %d", count);
count++;
}
/*********************************************/
OUTPUT from static2.c
Count = 0
Count = 1
Count = 2
Count = 3
Count = 4
Count = 5
Count = 6
Count = 7
Count = 8
Count = 9