I am now going through avr library in "Arduino\hardware\tools\avr\avr\include" folder. In stdint.h
file there is the piece of code:
typedef unsigned int uint16_t __attribute__ ((__mode__ (__HI__)));
typedef signed int int32_t __attribute__ ((__mode__ (__SI__)));
typedef uint16_t uint_fast16_t;
/** \ingroup avr_stdint
fastest signed int with at least 32 bits. */
typedef int32_t int_fast32_t;
So basically int32_t
, int_fast32_t
and signed int __attribute__ ((__mode__ (__SI__)))
are the same thing. Could anybody confirm that?
If yes, why is it done in such way? Why don't just use int32_t?