#include <stdio.h>
int a,b=5,c;
//global variable a=0,b=5 and c=0 (a and c initialized by bss)
int main(void) {
int b,c;
//local b initialized local c initialised (local c=0)
a=20;
//(global a updated) global a=20 global b=5 global c=0
b=function1();
//local b=output of function 1 local b=25
function3();
//printf("a= %d\nb= %d\nc= %d\n",a,b,c); (commented out)
//This prints local values of c (from this block main function and global of a)
return 0;
}
int function1(){
int a=50;
int b=20;
//global a=20 global b=5 global c=0
//local a and b initialized local a=50 local b=20
c=function2(b); //local b sent as parameter of function2 (b=20)
//global c updated global c= output of function2 global c=25
return c;
}
int function2(int b){
//global a=20 global b=5 global c=0
b=a+5;
//local b= global a + 5
return b;
}
int function3(){ ///prints all global values
printf("a= %d\nb= %d\nc= %d\n",a
,b
,c
); }
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCBhLGI9NSxjOwovL2dsb2JhbCB2YXJpYWJsZSBhPTAsYj01IGFuZCBjPTAgKGEgYW5kIGMgaW5pdGlhbGl6ZWQgYnkgYnNzKQoKaW50IG1haW4odm9pZCkgewoJaW50IGIsYzsKCS8vbG9jYWwgYiBpbml0aWFsaXplZCBsb2NhbCBjIGluaXRpYWxpc2VkIChsb2NhbCBjPTApCglhPTIwOwoJLy8oZ2xvYmFsIGEgdXBkYXRlZCkgZ2xvYmFsIGE9MjAgZ2xvYmFsIGI9NSBnbG9iYWwgYz0wIAoJYj1mdW5jdGlvbjEoKTsKCS8vbG9jYWwgYj1vdXRwdXQgb2YgZnVuY3Rpb24gMSBsb2NhbCBiPTI1CglmdW5jdGlvbjMoKTsKCS8vcHJpbnRmKCJhPSAlZFxuYj0gJWRcbmM9ICVkXG4iLGEsYixjKTsgKGNvbW1lbnRlZCBvdXQpCgkvL1RoaXMgcHJpbnRzIGxvY2FsIHZhbHVlcyBvZiBjIChmcm9tIHRoaXMgYmxvY2sgbWFpbiBmdW5jdGlvbiBhbmQgZ2xvYmFsIG9mIGEpIAoJcmV0dXJuIDA7Cn0KCmludCBmdW5jdGlvbjEoKXsKCWludCBhPTUwOwoJaW50IGI9MjA7CgkvL2dsb2JhbCBhPTIwIGdsb2JhbCBiPTUgZ2xvYmFsIGM9MAoJLy9sb2NhbCBhIGFuZCBiIGluaXRpYWxpemVkIGxvY2FsIGE9NTAgbG9jYWwgYj0yMAoJYz1mdW5jdGlvbjIoYik7IC8vbG9jYWwgYiBzZW50IGFzIHBhcmFtZXRlciBvZiBmdW5jdGlvbjIgKGI9MjApCgkvL2dsb2JhbCBjIHVwZGF0ZWQgZ2xvYmFsIGM9IG91dHB1dCBvZiBmdW5jdGlvbjIgZ2xvYmFsIGM9MjUKCXJldHVybiBjOwp9CmludCBmdW5jdGlvbjIoaW50IGIpewoJLy9nbG9iYWwgYT0yMCBnbG9iYWwgYj01IGdsb2JhbCBjPTAgCgliPWErNTsKCS8vbG9jYWwgYj0gZ2xvYmFsIGEgKyA1IAoJcmV0dXJuIGI7Cn0KaW50IGZ1bmN0aW9uMygpeyAvLy9wcmludHMgYWxsIGdsb2JhbCB2YWx1ZXMKCXByaW50ZigiYT0gJWRcbmI9ICVkXG5jPSAlZFxuIixhLGIsYyk7Cn0=