logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

atmega 8, C ,winavr,problem ze zmienną float,

Marcin_xx1 07 Paź 2008 18:32 1519 2
  • #1 5608881
    Marcin_xx1
    Poziom 21  
    Witam. Mam następujący problem: gdy deklaruje zmienną jako float bądz double, po kompilacji mam około 4 kilo kodu więcej niż gdy jest zadeklarowana jako int, potrzebuje liczby ułamkowej dzieląc tę zmienną w tym przypadku przez tysiąc słyszalem coś ze mogę mieć zle ustawione flagi w kompilatorze ale nie bardzo wiem ocb. proszę o jakąś podpowiedz, dzięki.
  • #2 5609495
    Pijopic
    Poziom 17  
    Bez kodu ciezko cos powiedziec ale prawdopodobnie musisz sie pogodzic z takim wzrostem obietosci kodu, albo zoptymalizowac go tak by wyeliminwac takie liczby co prawie zawsze sie da....
  • #3 5610154
    BoskiDialer
    Poziom 34  
    Wbudowana biblioteka liczb zmiennoprzecinkowych może zajmować swoje. Najprostszym rozwiązaniem jest zamienić zmienne na stałoprzecinkowe tzn int oraz używanie pewnego czynnika: np liczbę 1,5 zapisywać jako 1500, 0,333 jako 333 itd: ułamek razy 1000 zaokrąglony do liczby całkowitej. Zamiast 1000 można dać coś innego, można też zamiast int dać long long (64 bity, jeśli jest wspierany). Podstawowe działania matematyczne są trywialne.
REKLAMA