История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
вкратце зачем так делать?
Если совсем в вкратце то изолировать область видимости блока кода. Можно создавать переменные с одинаковым именем или/и делать какие то промежуточные вычисления без коллизий опять же с основным кодом.
Ну блин вот ты математик у тебя расчёты и тут в середине кода тебе надо посчитать что-то, но чуть по другому в идеале с теми же именами переменных без всяких там префиксов и прочего. Обрамил скобочками и всё. Язык си как и многие друге блочно-стуруктурированный язык, он весь состоит из блоков кода и блоков данных эти блоки обрамляются скобочками, область видимости такова что из нутри скобок видно всё что снаружи (исключая то что в других скобках), а тому что во вне не видно того что внутри скобок. Как это свойство языка использовать решать тебе, пока не найдёшь применение для себя понятное дело что будет казаться бесполезной штукой, но эта штука один из главных фундаментов на которых язык стоит. Ты и так это используешь, описывая типы данных/функции/условия/циклы, а тут просто явное применение с конкретной задачей, обрезать область видимости неименованного блока кода. Если такой блок кода именовать то получится функция, но тогда её надо будет вынести целиком во вне, а так как она будет во вне то и снабдить аргументами что-бы она могла через стек получить данные и выдать их.
Рассматривай блок кода обрамлённый скобками как анонимную функцию без аргументов и явного возврата значения, которая имеет доступ ко всему коду что выше. Дошло дело до неё она отработала записала что-то во вне и всё её нету, ниже по коду никак нельзя обратится к тому что было в этом блоке.
Исправление LINUX-ORG-RU, :
вкратце зачем так делать?
Если совсем в вкратце то изолировать область видимости блока кода. Можно создавать переменные с одинаковым именем или/и делать какие то промежуточные вычисления без коллизий опять же с основным кодом.
Ну блин вот ты математик у тебя расчёты и тут в середине кода тебе надо посчитать что-то, но чуть по другому в идеале с теми же именами переменных без всяких там префиксов и прочего. Обрамил скобочками и всё. Язык си как и многие друге блочно-стуруктурированный язык, он весь состоит из блоков кода и блоков данных эти блоки обрамляются скобочками, область видимости такова что из нутри скобок видно всё что снаружи (исключая то что в других скобках), а тому что во вне не видно того что внутри скобок. Как это свойство языка использовать решать тебе, пока не найдёшь применение для себя понятное дело что будет казаться бесполезной штукой, но эта штука один из главных фундаментов на которых язык стоит. Ты и так это используешь, описывая типы данных/функции/условия/циклы, а тут просто явное применение с конкретной задачей, обрезать область видимости неименованного блока кода. Если такой блок кода именовать то получится функция, но тогда её надо будет вынести целиком во вне, а так как она будет во вне то и снабдить аргументами что-бы она могла через стек получить данные и выдать их.
Рассматривай блок кода обрамлённый скобками как анонимную функцию без аргументов которая имеет доступ ко всему коду что выше. Дошло дело до неё она отработала записала что-то во вне и всё её нету, ниже по коду никак нельзя обратится к тому что было в этом блоке.
Исходная версия LINUX-ORG-RU, :
вкратце зачем так делать?
Если совсем в вкратце то изолировать область видимости блока кода. Можно создавать переменные с одинаковым именем или/и делать какие то промежуточные вычисления без коллизий опять же с основным кодом.
Ну блин вот ты математик у тебя расчёты и тут в середине кода тебе надо посчитать что-то, но чуть по другому в идеале с теми же именами переменных без всяких там префиксов и прочего. Обрамил скобочками и всё. Язык си как и многие друге блочно-стуруктурированный язык, он весь состоит из блоков кода и блоков данных эти блоки обрамляются скобочками, область видимости такова что из нутри скобок видно всё что снаружи (исключая то что в других скобках), а тому что во вне не видно того что внутри скобок. Как это свойство языка использовать решать тебе, пока не найдёшь применение для себя понятное дело что будет казаться бесполезной штукой, но эта штука один из главных фундаментов на которых язык стоит. Ты и так это используешь, описывая типы данных/функции/условия/циклы, а тут просто явное применение с конкретной задачей, обрезать область видимости неименованного блока кода. Если такой блок кода именовать то получится функция.