Разница между статической переменной, объявленной в разных областях

В чем разница между объявлением статической переменной внутри блока и вне блока в файле? Например, в чем здесь разница между статическими переменными a, b, c, d? Можем ли мы объявить статическую переменную, которая доступна из всех файлов программы?

    static int a;
    void getVol(..)
    { 
       static int b;
    }

    int main()
    {
       static int c;
       while(condition)
       {
           static int d;
            ....
       }
    some code here;
    return 0;
    }

Ответы на вопрос(6)

Ваш ответ на вопрос