Владимир написал: Serge, При чём тут вооще "из какой области вызывается выражение"? Эта дура его НЕ ВИДИТ! Глобальные переменные у меня действительно объявлены до main, но, полагаю, и это не имеет значения (в смысле, НЕ ДОЛЖНО иметь значения). Я не помню, есть ли у меня неинициализированные глобальные переменные (скорее всего, нет), но, полаю, и это не должно иметь никакого значения - здесь переменные глобальные по умолчанию (что есть ещё один идиотизм языка). Я же говорил не о переменных, а о функциях, которые по определению "объявлены за пределами main".
Чо ещё за "body" здесь нарисовалось? :: ЧАВО???!!! Что, ФУНКЦИИ "объявляются внутри main"?! Воистину, программисты вымерли!
nikolz, Лапуль, мне НАСРАТЬ на всю эту клиническую мутоту с потоками, которая вдарила в головожопы создателей этого, с позволения сказать, "языка". Я в своё время потратил две или три недели, чтобы гарантированно перенести все операции именно в поток main (три стека для этого пришлось завести!), и с тех пор горя не знаю. Так В ГРОБУ я видел такую "матчасть" - учите сами!
Владимир написал: Nikolay, Как это "в момент вызова foo она еще не определена"? У меня в скрипте первой функцией стоит main, а за ней ещё десятка два, обычно по алфавиту. Всегда все всё прекрасно видят. Да и Квик перед запуском делает что-то вроде компиляции кода.
Это зависит из какой области вызывается выражение
Если вызов переменной (функции) происходит из main() а сама переменная объявлена за пределами main() (например в body() или во внешнем подключенном файле), то ошибки не будет, тк код внутри main() выполняется после кода из body()
Но если объявление также как и вызов внутри main() то порядок имеет значение - сперва объявление, потом обращение.