Увод в програмирането  alpha
Области на действие на променливите

В тялото на функция могат да се дефинират вътрешни променливи. Те са определени от мястото на дефиниране до края на съответната функция или това е тяхната област на действие. Външните променливи се дефинират в началото на програмата, преди всички функции или се дефинират между функциите в първичния файл. Те са определени от мястото на дефиниране до края на първичния файл. По такъв начин една външна променлива може да се използва от различни функции и чрез нея да се предават стойности между функциите. Имата на външните променливи трябва да бъдат уникални в първичния файл

Note
Първичен файл - този, който се компилира.

Ако в дадена функция се среща вътрешна променлива с име, съвпадащо с това на външните променливи, то вътрешната променлива скрива външната променлива в своята област на действие.

Пример prog.cpp:

        float x,y;
        
        void main()
        {
                int k;
                // Tук може да се използват x и y;
        }
        
        float z;
        
        void f1()
        {
                int x;
                // Тук се използва вътрешната променлива x и
                // Външните променлив y и z;
        }
        
        void f2()
        {
                int y;
                // Тук се използва вътрешната променлива y и
                // Външните променлив x и z;
        }

Блок

Блок в C/C++ е последователност от дефиниции на променливи и оператори, заключен в {} . Блок може да се запише навсякъде в програмата, където е възможно да се запише оператор. Променливите, които се дефинират в блок са определени от мястото на дефиниринане до края на блока. Тези променливи са локални за блока. Там, където променливите са определени, е тяхната област на действие. Един блок може да съдържа в себе си друг блок. В този случай казваме, че блоковете са вградени един в друг. Променливите дефинирани в даден блок са глобални по отношение на блоковете, съдържащи се в дадения блок. Променливите във вложените блокове могат да имат еднакви имена. В този случай променливите в даден блок скриват глобалните променливи със същите имена.

Пример:

        void main()
        {
                float x,y;
                {
                        int k;
                        // локална променлива k
                        // глобални променливи x и y
                }
                
                float z;
                { 
                        int x;
                        // локална променлива x
                        // глобална променлива z и y;
                }
                
                { 
                        int y;
                        // локална променлива y
                        // глобална променлива z и x;
                }
        }
Note
Добра практика:
При малки блокове е добра практика променливите да се дефинират в началото на блока.
При големи блокове е препоръчително дефинирането на променлив да става възможно най-близко до мястото на тяхното използване.
Това води до по-добра читаемост на кода.