If a variable declared in a function (local variable) has no initializer it will have the value of what ever is in the memory location that the variable is assigned. It is called an uninitialized local variable and the compiler is just warning you that the variable can contain any value. Global variables are set to 0 by the compiler, but not local variables.