История изменений
Исправление MOPKOBKA, (текущая версия) :
Ну так и в императивных языках, если функция f что то изменяет, то нужно ее мысленно представить так:
f(state_a+arg_a) = result_a+state_b
f(state_c+arg_b) = result_b+state_d
Обычно state это не вся память программы, а переданные объекты, в SDL2 есть функция bool SDL_RenderClear(SDL_Renderer *renderer), и по сигнатуре понятно что нужно беспокоиться только о renderer и его внутреннем состоянии, и твои переменные локальные оно не изменит.
В отладчике воспроизвести проблему и в императивном языке просто, есть же дампы.
Я думаю sinf() подвержен внешним настройкам FPU (fenv.h), не смотрел что именно они делают.
Исправление MOPKOBKA, :
Ну так и в императивных языках, если функция f что то изменяет, то нужно ее мысленно представить так:
f(state_a+arg_a) = result_a+state_b
f(state_c+arg_b) = result_b+state_d
Обычно state это не вся память программы, а переданные объекты, в SDL2 есть функция bool SDL_RenderClear(SDL_Renderer *renderer), и по сигнатуре понятно что нужно беспокоиться только о renderer и его внутреннем состоянии, и твои переменные локальные оно не изменит.
В отладчике воспроизвести проблему и в императивном языке просто, есть же дампы.
Я думаю sin подвержен внешним настройкам FPU (fenv.h), не смотрел что именно они делают.
Исправление MOPKOBKA, :
Ну так и в императивных языках, если функция f что то изменяет, то нужно ее мысленно представить так:
f(state_a+arg_a) = result_a+state_b
f(state_c+arg_b) = result_b+state_d
Обычно state это не вся память программы, а переданные объекты, в SDL2 есть функция bool SDL_RenderClear(SDL_Renderer *renderer), и по сигнатуре понятно что нужно беспокоиться только о renderer и его внутреннем состоянии, и твои переменные локальные оно не изменит.
В отладчике воспроизвести проблему и в императивном языке просто, есть же дампы.
Я думаю sin подвержен внешним настройкам FPU, не смотрел что именно они делают.
Исправление MOPKOBKA, :
Ну так и в императивных языках, если функция f что то изменяет, то нужно ее мысленно представить так:
f(state_a+arg_a) = result_a+state_b
f(state_c+arg_b) = result_b+state_d
Обычно state это не вся память программы, а переданные объекты, в SDL2 есть функция bool SDL_RenderClear(SDL_Renderer *renderer), и по сигнатуре понятно что нужно беспокоиться только о renderer и его внутреннем состоянии, и твои переменные локальные оно не изменит.
Я думаю sin подвержен внешним настройкам FPU, не смотрел что именно они делают.
Исправление MOPKOBKA, :
Ну так и в императивных языках, если функция f что то изменяет, то нужно ее мысленно представить так:
f(state_a+arg_a) = result_a+state_b
f(state_c+arg_b) = result_b+state_d
Исправление MOPKOBKA, :
Ну так и в императивных языках, если функция f что то изменяет, то нужно ее мысленно представить так:
f(state_a+arg_a) = result_a+state_b
f(state_c+arg_b) = result_b+state_d
Исходная версия MOPKOBKA, :
Ну так и в императивных языках, если функция f что то изменяет, то нужно ее мысленно представить так:
f(state_a) = result+state_b
f(state_c) = result+state_d