LINUX.ORG.RU
Ответ на: комментарий от jtootf

> встречный вопрос: а зачем так нужно?

Это великая магия дзэн

и капча brayed как бэ подтверждает это

anonymous
()
Ответ на: комментарий от jtootf

Дабы во внешнем блоке не появлялось не нужной там переменной, собственно за тем же за чем разрешено и первое объявление.

anonymous
()
Ответ на: комментарий от anonymous

>Дабы во внешнем блоке не появлялось не нужной там переменной

...
{
  long res = sysconf(_SC_XOPEN_VERSION);

  if (res < 0 )
  {
  }
}
...

куда как читаемей

jtootf ★★★★★
()

потому что (long res = sysconf(_SC_XOPEN_VERSION)) не возращает значения

generatorglukoff ★★
()
Ответ на: комментарий от s0L

> А чем по твоему является результат выражения long res = sysconf(_SC_XOPEN_VERSION)??

ну это как раз не проблема -- присваивание то возвращает значение, почему бы и инициализации не возвращать??

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

дело видимо в том, что объявлять переменные в if() или while() можно только прямым путём:

if(int a = geta())
...

Дополнительные скобки затеняют эту конструкцию, а объявлять переменные внутри скобок нельзя.

(6.4 Selection statements)

alex_custov ★★★★★
()

Нельзя потому что стандарт не позволяет.

Стандарт не позволяет, потому что C некрасивый язык.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.