Stachu Chebel <
stch...@gmail.com> wrote:
> Jak już kiedyś wspominałem, nie jestem ekspertem w C, stąd moje pytanie może wyglądać naiwnie.
> double a;
> uint16_t k;
> a=1.7;
> k=(uint16_t)(a);
>
> Ile będzie wynosić k? 1 czy 2?
Będzie 1. Rzutowanie po prostu pozbywa się części po przecinku, nie robi
zaokrąglania.
> Można odpowiedzieć weź se skompiluj, uruchom, to zobaczysz. Tak, ale
> sprawa dotyczy programowania MCU i akurat z pewnych względów
> debuggowanie jest dosyć upierdliwe.
A masz tam LEDa albo dowolną linię GPIO?
if(k == 1) led_on();
Taki LED debugging.
> 1) Jakie są odpowidniki w C, Pascal'owych funkcji Round i Floor?
W C nie ma, ale jest w bibliotece standardowej (math), nazywają się,
niespodzianka, round() i floor().
> 2) Jak efektywne są ich kody maszynowe? Chodzi o czas.
Skompiluj, zobacz co wygeneruje kompilator. To zależy od platformy.
--
Przychodzi baba do lekarza:
- Panie doktorze, dziękuję za wspaniałe leczenie.
- Ależ ja leczyłem pani męża, nie panią!
- Tak, tak, ale ja po nim wszystko dziedziczę...