// Global, Auto, and Static Variable Declaration Example
#include <stdio.h>
int globalvar = 2; // global variable initialized only once
// and it's value is always held in memory
//************************************************************
// Function: printit
//
// Description: Justy increments and prints a set of local,
// static, and global variables
//
// Parameters: none
//
// Returns: void
//
//*************************************************************
void printit ()
{
static int staticvar = 2; // static initialized only once
// value is always held in memory
int autovar = 2; // local variable within printit
globalvar++;
staticvar++;
autovar++;
// Timeline 2
printf ("globalvar = %d \n", globalvar
); printf ("staticvar = %d \n", staticvar
); printf ("autovar = %d \n\n", autovar
); } // printit
int main ()
{
int x; // local variable within main
// Time Line 1
// Call print function three times
printit();
printit();
printit();
x = 5;
// Time Line 3
return (0);
} // main
Ly8gR2xvYmFsLCBBdXRvLCBhbmQgU3RhdGljIFZhcmlhYmxlIERlY2xhcmF0aW9uIEV4YW1wbGUKI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgZ2xvYmFsdmFyID0gMjsgLy8gZ2xvYmFsIHZhcmlhYmxlIGluaXRpYWxpemVkIG9ubHkgb25jZQoJCQkJCS8vIGFuZCBpdCdzIHZhbHVlIGlzIGFsd2F5cyBoZWxkIGluIG1lbW9yeQovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBGdW5jdGlvbjogcHJpbnRpdAovLwovLyBEZXNjcmlwdGlvbjogSnVzdHkgaW5jcmVtZW50cyBhbmQgcHJpbnRzIGEgc2V0IG9mIGxvY2FsLCAKLy8JCQkJc3RhdGljLCBhbmQgZ2xvYmFsIHZhcmlhYmxlcwovLwovLyBQYXJhbWV0ZXJzOiBub25lCi8vCi8vIFJldHVybnM6IHZvaWQKLy8KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgp2b2lkIHByaW50aXQgKCkKewoJc3RhdGljIGludCBzdGF0aWN2YXIgPSAyOyAvLyBzdGF0aWMgaW5pdGlhbGl6ZWQgb25seSBvbmNlCgkJCQkJCQkvLyB2YWx1ZSBpcyBhbHdheXMgaGVsZCBpbiBtZW1vcnkKCQkJCQkJCQoJaW50IGF1dG92YXIgPSAyOyAvLyBsb2NhbCB2YXJpYWJsZSB3aXRoaW4gcHJpbnRpdAoJCglnbG9iYWx2YXIrKzsKCXN0YXRpY3ZhcisrOwoJYXV0b3ZhcisrOwoJCgkvLyBUaW1lbGluZSAyCgkKCXByaW50ZiAoImdsb2JhbHZhciA9ICVkIFxuIiwgZ2xvYmFsdmFyKTsKCXByaW50ZiAoInN0YXRpY3ZhciA9ICVkIFxuIiwgc3RhdGljdmFyKTsKCXByaW50ZiAoImF1dG92YXIgICA9ICVkIFxuXG4iLCBhdXRvdmFyKTsKfSAvLyBwcmludGl0CgppbnQgbWFpbiAoKQp7CglpbnQgeDsgLy8gbG9jYWwgdmFyaWFibGUgd2l0aGluIG1haW4KCQoJLy8gVGltZSBMaW5lIDEKCQoJLy8gQ2FsbCBwcmludCBmdW5jdGlvbiB0aHJlZSB0aW1lcwoJcHJpbnRpdCgpOwoJcHJpbnRpdCgpOwoJcHJpbnRpdCgpOwoJCgl4ID0gNTsKCQoJLy8gVGltZSBMaW5lIDMKCXJldHVybiAoMCk7Cn0gLy8gbWFpbgo=