|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 02 Jan 2003 13:30:49 To : Vasya Kruglov Subject : Re: kernel compiling -------------------------------------------------------------------------------- >>> Vasya Kruglov wrote: VK> Представь, что данный код исполняется так, как он написан, т.е. VK> последовательно и без оптимизации каждый оператор выполняется так, как VK> описано в стандартах на С. Какой после его выполнения будет результат? Если VK> я правильно понимаю, то sum будет равно таки 15. Почему же различаются VK> результаты работы оптимиированного и неоптимизированного кода? Если именно исходного, который я рассматривал, int main() { int sum = 0; for( int i = 0; i < 5; ++i ) { for( int i = 0; i < 15; ++i ) { ++sum; } } return sum; } то тут будет не 15, а 75. Потому что i во внешнем и во внутреннем цикле разные. Можно потребовать ругательство на совпадение имён переменных: 09:49:24:netch@iv:~/tmp>g++ -Wshadow -c -xc++ t.c t.c: In function `int main()': t.c:5: warning: variable `i' shadows local t.c:4: warning: this is the shadowed declaration VK> P.S. Или я плохо знаю С? Это же не C, а C++ VK> Мяу! Аналогично :) -netch- --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7368ff7a9057.html, оценка из 5, голосов 10
|