- Katılım
- 27 Şubat 2019
- Mesajlar
- 12,016
Şimdi yazarak önümü görmeye çalışacağım.
millis() fonksiyonu tam olarak 47,5 gün sonra sıfırlanıyor. Bu rakam milisaniye cinsinden 4294967295 ms yapıyor.
Benim
Bu işlem gerçekleştiği anda
O zaman if bloğum şu hale geliyor
Bu durum da koşul sağlanamadığından if bloğuna girmeden sistem devam edip başa dönüyor.
Sistem if bloğuna girmediği için
O zaman yapmamız gereken
millis() fonksiyonu tam olarak 47,5 gün sonra sıfırlanıyor. Bu rakam milisaniye cinsinden 4294967295 ms yapıyor.
Benim
simdiki_zaman
değişkenim bu rakama ulaştığında 0'a dönüyor.Bu işlem gerçekleştiği anda
şimdiki_zaman = 0
onceki_zaman = 4294967295
oluyor.O zaman if bloğum şu hale geliyor
if(-4294967295 >= 32000)
Bu durum da koşul sağlanamadığından if bloğuna girmeden sistem devam edip başa dönüyor.
Sistem if bloğuna girmediği için
simdiki_zaman = onceki_zaman
ataması gerçekleşmediği için onceki_zaman
değişkenimin içinde hala 4294967295 rakamı var. Bu durumda da simdiki_zaman
değişkenim 47,5 gün sonra bu rakama ulaşacağı için if bloğuna bu süre zarfında hiç girmeyecek. Ve zamanı geldiğin de if bloğu if(4294967295 >= 32000)
haline gelip bloğun içine girecek ve bu vesile ile de 47,5 günde bir dönen kısır döngü oluşacak.O zaman yapmamız gereken
simdiki_zaman
değişkeni sıfıra döndüğün de onceki_zaman
değişkenini de sıfıra döndürmek. Beynim yandı yine. Yazmasam hayatta içinden çıkamazdım. Hoş şuanda da emin değilim ya.