在这里没有得到我的问题的详细答案。 我想我会从另一个角度解决它。
有人能够解释用于确定C99固定宽度整数类型的基础类型的选择标准:
[u]int_fast[n]_t [u]int_least[n]_t [u]int[n]_t
对于给定的处理器,如果’long’和’int’的大小相同(sizeof(int)== sizeof(long)),那么为什么’long’会在’int’上使用,反之亦然。
作者的心血来潮。
假设int
和long
的大小相同(假设它们具有相同的表示和其他特征),那么它们应该用于定义[u]int_{,_fast,_least}32_t
,这一点并不重要。因为类型或类型满足标准的要求。
嗯,那不是真的; 它可以在某些情况下有所作为。 int
和long
,即使它们的大小相同,仍然是不同且不兼容的类型。 例如,假设int32_t
类型定义为int
或long
,则以下程序:
#include #include int main(void) { int32_t *p32 = NULL; int *ip = p32; long *lp = p32; return 0; }
违反约束并要求对ip
的声明或 lp
的声明进行诊断,具体取决于int32_t
的定义方式。 但是你应该避免编写这样的代码。
以上就是c/c++开发分享C99的固定宽度整数类型相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/549978.html