I have the following C code:
   //declared at the beginning of the CAStar.c file:
    int TERRAIN_PASSABLE = 1;
    int TERRAIN_IMPASSABLE = 0;
    int TERRAIN_SOME_WHAT_PASSABLE = 2;
I've noticed that for any of these variables, if they have a non-zero value, they are reported by the "nm" command as type "D" (initialized):
_TERRAIN_PASSABLE          |00000008|   D  |
_TERRAIN_SOME_WHAT_PASSABLE|00000004|   D  |
However, those initialized to 0 are reported as "B" (uninitialized):
_TERRAIN_IMPASSABLE        |00000000|   B  |
Why the difference between "initialized with 0" and "initialized with something else but 0" ?
 
     
     
    