Do "int i = 10;" and "int i; i=10;" perform different functions when i is a global variable?

Viewed 157

Please refer the program shown below. I get the following compiler warnings.

bash-3.2$ gcc -Wall test1.c test1.c:6: warning: data definition has no type or storage class test1.c:6: warning: type defaults to ‘int’ in declaration of ‘j’

Usually this warning is thrown when runtime operation is written outside the function. So I am questioning why in a global scope, "int j; j=20" throws warning but "int i = 10" does not?

   #include <stdio.h>

   int i = 10;

   int j;
   j=20;

   int
   main(void)
   {
       int k;

       k = 30;

       printf("%d %d %d\n", i, j, k);

       return 0;
   }
2 Answers
Related