Порядок объявления переменных (если быть точным, то массивов) (в программе очень даже имеет значение! Недоумеваю. Почему?)

Модератор: Модераторы разделов

Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: Порядок объявления переменных (если быть точным, то массивов)

Сообщение ZyX »

Код:

zyx@localhost ~/*.*/Proj/other $ i=0 ; while [[ $i -lt 4 ]] ; do gcc -O$i -o t2_$i t2.c ; let i=($i+1) ; done zyx@localhost ~/*.*/Proj/other $ i=0 ; while [[ $i -lt 4 ]] ; do echo "t2_$i" ; ./t2_$i ; let i=($i+1) ; done t2_0 f [0]= 82 f [0]= 123 f [0]= 133 f [0]= 128 f [0]= 129 f [0]= 130 t2_1 f [0]= 82 f [0]= 123 f [0]= 133 f [0]= 82 f [0]= 123 f [0]= 133 t2_2 f [0]= 82 f [0]= 123 f [0]= 133 f [0]= 82 f [0]= 123 f [0]= 133 t2_3 f [0]= 82 f [0]= 123 f [0]= 133 f [0]= 82 f [0]= 123 f [0]= 133
Небольшое исследование: f изменяется только при нулевой оптимизации (самая первая версия программы). gcc версия:

Код: Выделить всё

Используются внутренние спецификации.
Целевая архитектура: i686-pc-linux-gnu
Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.2.3/work/gcc-4.2.3/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.2.3 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.2.3/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.3 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.3/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.3/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.2.3/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-libunwind-exceptions --disable-multilib --enable-libmudflap --disable-libssp --disable-libgcj --with-arch=i686 --enable-languages=c,c++,treelang,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Модель многопотоковости: posix
gcc версия 4.2.3 (Gentoo 4.2.3 p1.0)
Спасибо сказали:
promov
Сообщения: 384
Статус: Участник
ОС: Debian GNU/Linux

Re: Порядок объявления переменных (если быть точным, то массивов)

Сообщение promov »

Сожалею, что не могу продолжить разговор по причине незнания тык скыть нулевой оптимизации, и непонятности вышеприведённых кодов.
Зачем хорёк пошел в ларёк, зачем барсук полез на сук...
Мораль легко уразуметь: зачем на бал пришёл медведь?
Спасибо сказали: