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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.