Язык программирования C

       

Блочная структура


Язык "C" не является языком с блочной структурой в смысле PL/1 или алгола; в нем нельзя описывать одни функции внутри других.

переменные же, с другой стороны, могут определяться по методу блочного структурирования. описания переменных (включая инициализацию) могут следовать за левой фигурной скобкой,открывающей любой оператор, а не только за той, с которой начинается тело функции. переменные, описанные таким образом, вытесняют любые переменные из внешних блоков, имеющие такие же имена, и остаются определеннымидо соответствующей правой фигурной скобки. Например в

if (n > 0) { int i; /* declare a new i */ for (i = 0; i < n; i++) ... }

Областью действия переменной i является "истинная" ветвь if; это i никак не связано ни с какими другими i в программе.

Блочная структура влияет и на область действия внешних переменных. Если даны описания

int x;

f() { double x; ... }

То появление x внутри функции f относится к внутренней переменной типа double, а вне f - к внешней целой переменной. Это же справедливо в отношении имен формальных параметров:

int x; f(x) double x; { ... }

Внутри функции f имя x относится к формальному параметру, а не к внешней переменной.



Содержание раздела