c/c++语言开发共享C99的固定宽度整数类型

在这里没有得到我的问题的详细答案。 我想我会从另一个角度解决它。

有人能够解释用于确定C99固定宽度整数类型的基础类型的选择标准:

[u]int_fast[n]_t [u]int_least[n]_t [u]int[n]_t 

对于给定的处理器,如果’long’和’int’的大小相同(sizeof(int)== sizeof(long)),那么为什么’long’会在’int’上使用,反之亦然。

    作者的心血来潮。

    假设intlong的大小相同(假设它们具有相同的表示和其他特征),那么它们应该用于定义[u]int_{,_fast,_least}32_t ,这一点并不重要。因为类型或类型满足标准的要求。

    嗯,那不是真的; 它可以在某些情况下有所作为。 intlong ,即使它们的大小相同,仍然是不同且不兼容的类型。 例如,假设int32_t类型定义为intlong ,则以下程序:

     #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

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐