Velikost int v avr-gcc
Moderátor: Moderátoři
-
slash8
Velikost int v avr-gcc
-
AB
http://download.savannah.gnu.org/releases-noredirect/avr-libc/avr-libc-user-manual-1.4.4.pdf
V popisu knihovny <stdlib.h> na straně 64 je vidět kolik bitů mají celočíselné proměnné.
int má 16 bitů, long 32 bitů.
Konstanta má defaultně typ int.
Když napíšete
int intvar = 50000
Long_var = 20000 * int_var
tak překladač vypočítá pravou stranu do pomocné proměnné typu int (ta ovšem přeteče), a pak ji přiřadí do L_var.
Aby se to nestalo, je třeba aspoň jednu hodnotu na pravé straně přetypovat na long.
Long_var = 20000 * (unsigned long)int_var;
nebo
Long_var = 20000L * int_var