假设您使用的是支持C99(甚至只是stdint.h)的编译器,是否有任何理由不使用固定宽度整数类型,如uint8_t?
我所知道的一个原因是,char在处理字符而不是使用s时使用s 更有意义(u)int8_t,如本问题所述.
但是如果你打算存储一个数字,你何时想要使用一种你不知道它有多大的类型?即在什么情况下你想要在unsigned short不知道它是8,16甚至32位的情况下存储一个数字,而不是使用uint16t?
接下来,使用固定宽度整数或使用普通整数类型并且从不假设任何东西并且使用sizeof它们需要知道它们使用了多少字节时,它被认为是更好的做法吗?
是否有任何关于使用数字限制宏(例如INT64_MAX)而不是std :: numeric_limits的论据?根据我的理解,numeric_limits在标准中,但宏仅在C99中,因此非标准.