Распределение кода и объявлений

Содержание

В соответствии со Стандартом С89 все объявления, находящиеся внутри блока, должны предшествовать первому оператору кода. Но к Стандарту С99 это правило не относится. Рассмотрим, например, программу

#include <stdio.h>

int main(void)
{
  int i;

  i = 10;

  int j; / неправильно для С89; допустимо для С99 и C++

  j = i;

  printf("%d %d", i, j);

  return 0;
}

Здесь выражение

i = 10

находится между двумя объявлениями: переменной i и переменной j. Стандарт С89 такое не разрешает. Зато это вполне допускается в С99 (да и в C++ тоже). Возможность распределять объявления и код довольно широко используется в языке C++. Появление этой возможности в языке С облегчает написание кода, который можно использовать в средах обоих языков.