Scoping Example


#include <stdio.h>

int foo(int);

int main(void)
{
  int x;

  x = foo(2);
  x = foo2(2);
  x = foo3(2);

  return (0);
}



int foo2(int a)
{
  int x, y;

   x = foo(a);
   y = foo3(a);
   return(x * y);
}


int foo3(int a)
{
  int x, y;

   x = foo(a);
   y = foo2(a);
   return(x * y);
}


int foo(int a)
{
  return (a * 45);
}

% cc scoping.c

% lint scoping.c
"scoping.c", line 10: warning: prototype for function foo2 is not in scope
"scoping.c", line 11: warning: prototype for function foo3 is not in scope
"scoping.c", line 11: warning: x set but not used in function main
"scoping.c", line 12: warning: main() returns random value to invocation 
             environment
"scoping.c", line 17: warning: mix of old and new style function declaration
"scoping.c", line 26: warning: mix of old and new style function declaration